분산 메시징 시스템인 Kafka 의 구조를 들여다보자.

Cluster
클러스터는 브로커(Kafka 서버)의 집합체를 말한다. 클러스터를 구분하는 각각의 브로커는 카프카 서버로 불린다.
Broker - 메시지 수신 및 저장
- 이벤트 스트리밍 플랫폼
- 밑에서 추가 설명
Topic - 데이터 분류 단위
- 브로커에서 데이터를 관리할 때 기준이 되는 단위다.
- 여러 파티션으로 나뉘어서 데이터를 병렬처리할 수 있다.
- 리더 파티션 Leader Partition
- Producer, Consumer 와 직접 통신하는 파티션
- 읽기, 쓰기 연산
- 팔로워 파티션 Follower Partition
- 데이터 보관
- 리더 파티션에서 전달된 데이터를 복제하여 저장
- 리더 파티션이 속한 브로커에서 장애 발생 시, 팔로워 파티션이 리더 파티션 지위를 가질 수 있다.(리밸런싱)
Broker
- 브로커 내부에 여러 토픽이 생성될 수 있다.
- 토픽들에 의해 생성된 파티션이 보관하는 데이터를 분산 저장한다
- 장애 발생 시 안전하게 데이터를 사용하도록 보조하는 역할을 한다.
Zookeeper
카프카 브로커의 동작 상태를 확인하고 Consumer 와 Producer 에게 전달한다.
카프카 분산 처리 시스템 서버에 대한 메타 데이터를 관리하는 시스템을 말한다. 클러스터를 구성하는 브로커들끼리 공유되는 데이터를 유지하거나 특별한 조율을 하기 위해서 사용된다.
Kafka 를 띄우기 위해서 반드시 Zookeeper 가 실행되어야 한다.
- Kafka 클러스터의 일관된 상태 관리
- 설정관리 Configuration Management
- 클러스터의 설정 정보를 최신으로 유지
- 클러스터 관리 Cluster Management
- 클러스터 서버(브로커) 추가 혹은 제외 시 클러스터 안 서버(브로커) 에게 공유
- 설정관리 Configuration Management
- 브로커의 실패 및 복구 감지
- Kafka 브로커의 동작 상태를 파악하고 상태 정보를 Producer, Consumer 에게 전달
⇒ 한정된 리소스 내에서 작동하여 대량 데이터 처리가 어려울 수 있다.
'Kafka' 카테고리의 다른 글
[Kafka] Listener 기본 설정 (6) (0) | 2024.07.26 |
---|---|
[Kafka] Spring Kafka commit (5) (0) | 2024.07.17 |
[Kafka] commit 이해하기 (4) (0) | 2024.07.17 |
[Kafka] Partition & Replication (3) (1) | 2024.07.12 |
[Kafka] 탄생 배경 (1) (0) | 2024.07.08 |