본문 바로가기

DevOps7

아파치 카프카 개발 AWS에 카프카 클러스터 설치 및 실행 1. AWS ec2 3대를 준비하고 각각 접속한다. 2. 각 인스턴스에서 jdk를 설치한다. yum install java-1.8.0-openjdk-devel.x86_64 3. 각 인스턴스에서 주키퍼를 다운받는다. wget https://dlcdn.apache.org/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9-bin.tar.gz 4. 각 인스턴스에서 다운받은 주키퍼의 압축을 풀어준다. tar xvf apache-zookeeper-3.5.9-bin.tar.gz 5. 주키퍼 앙상블을 구축하기 위해서 각 서버마다 주키퍼 설정을 해준다. cd apache-zookeeper-3.5.9-bin/conf 위 경로에 들어가서 zoo.c.. 2022. 1. 25.
아파치 카프카(Apache Kafka) 기초 Before Kafka 소스 앱과 타켓 앱 간 데이터 전송 라인이 매우 많아짐 -> 배포와 장애에 대응하기 어려움 프로토콜과 데이터 포맷의 다양화 -> 변경사항 유지보수가 어려움 Kafka Feature 소스 앱과 타켓 앱의 결합도를 낮추기 위해 사용 카프카 내부에 위치한 각종 토픽(=큐)에 데이터를 넣는 역할은 프로듀서가 수행하고, 데이터를 가져가는 역할은 컨슈머가 수행 데이터 흐름에 있어서 서버가 이슈가 생기는 상황에서도 데이터를 손쉽게 복구 가능 토픽 카프카에서는 토픽을 여러 개 생성할 수 있음 데이터베이스의 테이블이나 파일시스템의 폴더와 유사 파티션이 하나일 경우 하나의 큐는 여러 개의 파티션을 가질 수 있고, 하나의 파티션은 큐와 같이 내부에 데이터가 차곡차곡 쌓임 컨슈머는 가장 오래된 데이터부.. 2022. 1. 19.
WebSocket vs HTTP HTTP 프로토콜의 동작 방식 일반적으로 google.com에 접속할 때마다 요청이 백엔드 서버로 이동하고, 해당 요청은 HTTP나 HTTPS 형식으로 들어간다. 요청이 전송되면 클라이언트와 서버 간에 TCP 연결이 생성되고, 응답이 수신되면 이 연결은 닫히게 된다. 웹 사이트가 각기 다른 5개의 정보를 검색하기 위해 웹 서버에 5개의 요청을 보낸다고 가정해보자. 요청이 서버에 도달할 때마다 별도의 별도의 연결을 생성할 것이다. 응답이 수신되면 서버에서는 데이터를 요청하는 작업을 수행할 것이다. 해당 방식이라면 만약 웹 서버에 대한 수백 개의 요청은 수백 개의 새로운 연결과 수백 개의 정보를 검색할 것이다. 즉, 웹 사이트를 방문할 때마다(요청이 있을 때마다) 매번 새로운 커넥션을 만드는 것이다. Web.. 2022. 1. 4.
모놀리식 vs 마이크로서비스 아키텍처 마이크로서비스 아키텍처(MSA) 개념 및 이해 MSA란 시스템을 여러개의 독립된 서비스들로 나누어서, 해당 서비스를 조합하여 기능을 제공하는 아키텍처 디자인 패턴 특징 각 서비스간 Network(보통 HTTP)를 통해 통신 각 서비스를 독립된 단위 bangsj1224.tistory.com MA(Monolithic Architecture) 어플리케이션이 하나의 아키텍처로 이루어진 것이며, 대부분의 기업용 애플리케이션은 모놀리식 아키텍처를 따라 개발되었다. 이 구조는 개발과 관리가 용이하다는 장점이 있으나, 시스템 규모가 커질 경우 복잡도도 증가해 코드의 이해와 분석이 어려워지고, 작은 수정사항에도 전체를 빌드 및 배포해야 하는 등 개선과 확장이 어렵다는 단점이 있다. MSA(MicroService Arch.. 2021. 11. 21.