Kafka Cluster 내에 존재하는 서버이자
데이터를 주고 받는 주체.
- 크게 데이터 저장, 복제, 삭제로 나눈다.
Producer
로부터 데이터를 받으면 Topic
의 Partition
에 데이터 저장File System에 저장한다.
파일입출력 속도 이슈가 발생
Consumer가 데이터 요청 시, Partition
에 저장된 데이터 전달
장애 허용 시스템
데이터 복제 단위는 Partition
Leader / Follower 방식이며,
Replication Factor 설정을 한다.
IF
Leader인
0번 Broker
가 장애
-> FailOver
-> Follower 중 하나가 후보, Leader로 선정된다.
클러스터의 안정성과 효율성을 유지하기 위한 역할들
- Controller
- Broker의 Health Check
- FailOver 시, Leader 선정
- 컨트롤러 역할을 맡은 브로커가 장애 시, 다른 브로커가 해당 역할 맡음
- Coordinator
- Consumer 그룹의 Status Check
- 파티션과 컨슈머의 매칭 및 분배 설정
- 리밸런싱
- 컨슈머가 컨슈머 그룹에서 빠지게 되면 매칭 되지 않은 파티션을 다른 컨슈머로 할당
오직 Broker만이 데이터 삭제 가능
Log Segment라는 파일 단위로 삭제
log.segment.bytes
또는 log.segment.ms
옵션에 값이 설정되면 세그먼트 파일이 닫힌다.log.retention.bytes
또는 log.retention.ms
옵션에 설정 값이 넘으면 삭제된다.