Apache Kafka
소개
- 아파치 카프카
- 분산 메시징 시스템 으로 대용량의 실시간 로그처리 에 용이하다고 한다
기본 구성 요소 및 동작
- 발행-구독(publish-subscribe) 모델을 기반으로 동작
- 확장성, 고가용성을 고려한 Cluster 구성
- producer: 특정 topic의 메시지를 생성한 뒤 해당 메시지를 broker에 전달
- broker: Apache ZooKeeper 에 의한 분산처리 를 통해 topic을 기준으로 메시지를 관리
- broker들이 클러스터로 구성되어 동작하도록 설계
- broker가 1개 밖에 없을 때에도 클러스터 로써 동작
- consumer: 해당 topic을 구독하는 consumer들이 메시지를 수집 및 처리
Topic 과 Partition
- Kafka의 topic은 partition 이라는 단위로 클러스터의 각 서버들에 분산되어 저장
기존 메시징 시스템과의 차이점
- 메시지를 파일 시스템에 저장
- 데이터 영속성 보장(별도의 설정이 필요하지 않음)
- 많은 메시지가 쌓여있어도 성능 이슈가 적다
- 실시간 / batch 작업이 각각 용이하다
- producer - broker
- AMQP 프로토콜, JMS API 이 아닌 단순 TCP 기반의 프로토콜로 오버헤드 감소
- 다수의 메시지를 batch형태로 broker에게 한 번에 전달할 수 있다 == TCP/IP 라운드트립 횟수를 줄일 수 있다
- broker - consumer
- 기존 방식: broker의 push 에 의한 메시지 전달
- kafka 방식: consumer 의 pull 에 의한 메시지 전달
- consumer 의 처리능력에 따라 메시지를 전달 받기 때문에 성능적으로 우수할 수 있다
- 메시지를 파일 시스템에 저장
'BigData > Kafka' 카테고리의 다른 글
kafka 동작에 필요한 명령어 (0) | 2017.05.29 |
---|---|
kafka 모니터링 도구 (0) | 2017.03.16 |
Kafka Multi Cluster broker 구성하기 (0) | 2017.02.22 |