Kafka란?
apach 재단의 kafka는 pub-sub 구조의 메세지 큐이며 분산 클러스터 환경에 특화되어있습니다.
기존의 Rabbit MQ보다 TPS가 높다는 장점이 있습니다. 그 외에도 클러스터 구성, fail-over, replication과 같은 여러 특성이 있습니다
pub-sub 구조란?
publisher - subscriber의 약자로 둘이 직접적으로 메세지를 주고 받는것이 아닌 중간에 Topic을 두고 해당 topic에 publish와 subscribe 하는 구조입니다
Kafka의 구성요소
다음과 같은 여러 구성요소가 있습니다
topic, partition, offset
producer, consumer, consumer group
broker, zookeeper
replication
topic, partition, offset
kafka에 지정된 topic에 메세지가 저장되며, topic은 여러 parition으로 나눠질 수 있습니다. partition안에는 offset이라는 메세지의 위치를 나타내주는 것이 있습니다. consumer가 offset을 사용하여 어디까지 consume했는지 알 수 있습니다
(출처 : https://kafka.apache.org/documentation/)
producer, consumer, consumer group
producer는 메세지를 생산(밑에 그림에서 write)하는 주체이며 consumer는 소비(read)하는 주체입니다
producer와 consumer는 각각 독립적입니다
(출처 :https://www.quora.com/Whats-the-difference-between-partition-number-and-replication-factor-in-Kafka)
consumer group은 producer가 생성한 메세지는 여러개의 파티션에 저장되어 있습니다
그래서 consumer들은 하나의 토픽을 읽어가기 위해 여러 소비자의 group을 만드는데 그것이 consumer group입니다
(출처 : https://blog.cloudera.com/scalability-of-kafka-messaging-using-consumer-groups/)
그리고 consumer group은 특정 consumer가 장애 발생시 다른 그룹내의 consumer가 대신 읽을수 있게 되어 대처가 빠릅니다
broker, zookeeper
broker는 카프카 서버 각각을 뜻합니다. 동일한 노드 내에서 여러개의 broker를 띄울 수 있습니다.
zookeeper는 분산 메세지큐의 정보를 관리해주는 역할을 합니다
Replication
kafka에서는 replication 수를 임의로 지정하여 topic을 만들 수 있습니다(broker 갯수보다 적거나 같게)
topic-A는 replicatioin-factor 3개 ,topic-B는 replicatioin-factor 2개인 경우이다
전체 구조
'Cloud > Kafka' 카테고리의 다른 글
Kafka 따라해보기 - 2 (Python3로 간단히 code 짜보기) (2) | 2019.11.09 |
---|---|
Kafka 따라해보기 - 1 (설치하기 및 실행하기) (0) | 2019.11.09 |