이번 포스트에서는 Kafka의 클러스터부터 토픽까지의 작동 원리를 알아보자
📌 서론
이번 포스트에서는 Kafka의 주요 구성 요소인 클러스터, 브로커, 토픽, 파티션, 세그먼트에 대해 자세히 살펴보자. 또한 Kafka 클러스터 내에서 브로커가 어떻게 동작하는지, 데이터의 복제 및 분산 처리 방법에 대해서도 알아보자. Kafka를 이해하는 것은 데이터 스트리밍과 실시간 데이터 처리의 세계로 들어가는 첫걸음이다. Kafka의 구조를 확실히 이해하면 더 복잡한 데이터 파이프라인을 구축하고 관리하는 데 도움이 될 것이다.
1. Kafka의 구조 및 컴포넌트
클러스터와 브로커
- Kafka 클러스터는 여러 브로커로 구성되어 있다. 각 브로커는 서로 연결되어 있고, 한 브로커가 실패해도 다른 브로커가 그 역할을 대신해 고가용성을 보장한다.
토픽, 파티션, 세그먼트
- 토픽(Topic): 메시지는 토픽에 따라 저장된다. 각 토픽은 하나 이상의 파티션에 분산 저장되어 있다.
- 파티션(Partition): 파티션은 메시지를 효율적으로 관리하고 분산시키는 역할을 한다. 예를 들어, 'orders' 토픽의 메시지가 Partition 0에 저장되면, 이 파티션은 특정 브로커(예: Broker 1)에 속한다.
- 세그먼트(Segment): 각 파티션 내의 메시지는 세그먼트라는 더 작은 단위로 관리되어, 세그먼트가 일정 크기에 도달하면 새로운 세그먼트가 생성된다.
2. Kafka 클러스터 내의 브로커 동작방식
파티션 복제 및 ISR
- Kafka는 파티션을 다른 브로커에도 복제해 데이터의 안정성을 높인다.
- ISR은 현재 리더와 동기화된 상태의 팔로워 브로커들을 말한다. 리더가 실패하면 ISR 중 하나가 새 리더로 승격된다.
브로커의 역할
- 각 브로커는 독립적으로 동작하고, 하나의 브로커가 실패해도 전체 클러스터에 큰 영향을 미치지 않는다.
- 브로커들은 토픽 내의 파티션 데이터를 서로 복제하며, 리더 파티션은 읽기 및 쓰기를 담당하고, 팔로워 파티션은 리더의 데이터를 복제한다.
메시지 라우팅과 상호작용
- 프로듀서는 데이터를 브로커에 전송하고, 이 데이터는 Kafka 설정에 따라 특정 파티션에 저장된다. 컨슈머는 토픽을 구독하고, 마지막으로 읽은 메시지 위치를 오프셋으로 관리한다.
스케일링과 장애 복구
- 클러스터는 브로커의 추가나 제거에 유연하게 대응하고, 자동으로 장애를 복구할 수 있다.
카프카 파티션을 쉽게 이해해보자👇🏻👇🏻
반응형
'유용한 개발지식 > Apache Kafka' 카테고리의 다른 글
Kafka(카프카) Producer(프로듀서)와 Consumer(컨슈머)의 동작 원리와 고가용성 (1) | 2023.12.27 |
---|---|
Kafka(카프카) 파티션(partition) 쉽게 이해하기 (3) | 2023.12.27 |
Kafka(카프카)의 기본 구조 이해하기 (클러스터, 브로커, 토픽, 파티션, 세그먼트) (1) | 2023.12.27 |
Kafka(카프카)란 무엇인가 (2) | 2023.12.27 |
SpringBoot와 Kafka(1) - 기본설명 (0) | 2023.10.19 |