반응형

Zookeeper

Zookeeper는 Broker들을 관리하는 역할을 한다

  • Broker 등록 / 상태 관리
  • 브로커의 상태를 감시
  • Controller 선출
  • 파티션 리더 선출 및 정보 관리
  • 클러스터 메타데이터 관리

주키퍼는 카프카에 종속되지 않은 별개의 시스템으로 브로커 관리를 위해 존재한다

Kafka 2.8 부터 이에 대한 의존성을 제거하고자 KRaft를 통해 이를 대처하려고 하고 있다

Broker

Broker는 메시지 저장 및 메시지 제공 등의 역할 수행하며 Producer/Consumer와 직접 통신하는 주체이다

  • 데이터 저장소
  • 메시지 수신 / 전달
  • 파티션 및 레플리카 관리
  • 파티션 리더 역할 수행
  • Controller 역할 수행

 

Kafka의 Broker들의 모음을 Kafka Cluster라고 한다

Zookeeper는 Kafka Cluster 내 Controller를 선출하는 역할, Broker들을 관리하는 역할을 하며 Broker들의 상태를 감시하고 브로커의 상태를 Controller에게 전달하여 Controller가 Failover를 할 수 있도록 한다

반응형

'공부 > Kafka' 카테고리의 다른 글

[Kafka] Kafka의 특징  (0) 2021.06.13
[Kafka: 카프카] Kafka란?  (0) 2021.06.07
반응형

카프카의 특징

  • 디스크에 데이터 적재
  • 수평적으로 확장 가능
  • 대량의 데이터를 빠르게 처리
  • 실시간 데이터 스트리밍을 지원
  • 파티션 내 메시지 순서 보장

카프카는 메시지 큐로서 시스템 간 비동기적 데이터 처리를 위해 많이 사용이 된다

ex) 메시지 알림 센터, 배달 주문 접수 등

반응형

'공부 > Kafka' 카테고리의 다른 글

[Kafka] Zookeeper와 Broker  (0) 2025.06.29
[Kafka: 카프카] Kafka란?  (0) 2021.06.07
반응형

Kafka는 pub-sub 구조를 가지는 큐이다.

 

Kafka는 프로듀서, 브로커, 컨슈머 이렇게 3개로 이루어져 있고,

프로듀서에서 메시지를 브로커에게 전달하면 전달된 메시지를 컨슈머가 브로커를 통해 가져와 처리하게 된다.

 

Kafka의 처리 흐름을 보면

 

 

 

프로듀서 -> 브로커 <- 컨슈머

로 브로커를 중심으로 프로듀서가 메시지를 브로커에 전달하고, 컨슈머가 브로커에게 가서 메시지를 받아와 처리하는 구조이다.

 

Kafka는 많은 장점을 가지고 있다.

그 중 두드러 지는 장점이 고성능, 고가용성, 확장성 이다.

Kafka는 일반적인 MQ 시스템에서 지원하는 기능들을 배제함으로서 message당 오버헤드를 줄이는 등을 통해 고성능을 확보했다고 한다.

 

 

Kafka는 정해진 시간 동안 브로커가 받은 메시지를 가지고 있기 때문에 컨슈머가 이슈로 정상 동작을 하지 않을 경우 다른 컨슈머가 브로커에 저장된 메시지를 가지고 이어서 작업할 수 있어 가용성이 높다.

 

그리고 Kafka의 브로커는 topic과 partition으로 이루어져있다. 하나의 토픽에 여러 파티션이 있을 수 있고 메시지는 파티션에 저장되게 된다. 브로커가 프로듀서로부터 많은 메시지를 받는 경우 필요시 파티션을 늘려 수신되는 메시지를 분산 시킬 수 있다. 이때 기본 설정은 RR로 동작하게 된다. 이렇게 늘린 파티션에 컨슈머를 추가로 배치하여 수평 확장을 할 수 있다.

 

 

Reference:

Kafka: a Distributed Messaging System for Log Processing (논문)

반응형

'공부 > Kafka' 카테고리의 다른 글

[Kafka] Zookeeper와 Broker  (0) 2025.06.29
[Kafka] Kafka의 특징  (0) 2021.06.13

+ Recent posts