Apache Kafka(아파치 카프카)는 linkedln에서 개발된 분산 메시징 시스템으로써 2011년에 오픈소스로 공개되었다.
대용량의 실시간 로그처리에 특화된 아키텍처 설계를 통하여 기존 메시징 시스템보다 우수한 TPS
Kafka는 발행-구독(publish-subscribe) 모델을 기반으로 동작 하며 producer, consumer, broker로 구성
broker는 topic을 기준으로 메시지를 관리한다.
1. Producer는 특정 topic의 메시지를 생성한 뒤 해당 메시지를 broker에 전달한다.
2. Broker가 전달받은 메시지를 topic 별로 분류하여 쌓아놓는다.
3. 해당 topic을 구독하는 consumer들이 메시지를 가져가서 처리하게 된다.
broker들이 클러스터로 구성되어 동작하도록 설계, broker가 1개라도 동작, 분산처리기
특징
- 확장성(scale-out)
- 고가용성(high availability)
기존 메시징 시스템과의 차이점
- 대용량 실시간 로그 처리에 특화, TPS 우수 but, 범용적이지는 않다.
- 분산시스템 설계로 기존 메시징 시스템에 비해 분산 및 복제 구성이 쉽다.
- 다수의 메세지를 개별적으로 전송할 때 각 메시지를 개별적으로 전송하는 기존 메시징과 달리 다수의 메세지를 배치형태로 broker에게 한 번에 전달할 수 있어 TCP/IP 라운드트립 횟수를 줄일 수 있다.
- 데이터를 파일 시스템에 저장하기 때문에 영속성(durability)을 가진다.
- 파일 시스템으로 데이터가 많아도 성능이 느려지지 않음 (이건 좀 의문)
- 파일 시스템에서 데이터는 시간이 지남에 따라 삭제된다.
결론
기존 메세징 시스템보다 확장성과 가용성이 좋기때문에 사용하기 좋은 분산메세징 시스템이다.
참조
'컴퓨터 지식 > 블록체인' 카테고리의 다른 글
Hyperledger Caliper 설치하기 (1) | 2019.10.28 |
---|---|
도커 설치 (0) | 2019.10.09 |
[node.js] Promise를 이용한 비동기 처리 (0) | 2019.06.19 |
Linux에 Apache 설치하기 (0) | 2019.06.13 |
우분투(Ubuntu)에 tomcat(was) 설치하기 (0) | 2019.06.12 |