Data Engineering/Kafka
[Kafka] 아파치 카프카 기초 - Broker, Replication, ISR
Zyung
2023. 7. 16. 16:02
카파치 브로커
: 카프카가 설치되어 있는 서버 단위
3개 이상을 권장
Replication
: 파티션의 복제
- partition이 1개이고 replication이 2이면 원본 1개와 복제본 1개가 존재한다는 뜻이다.
- 해당 그림에서 브로커는 3개이므로 replication이 4개가 될 수는 없다.
용어
- Leader Partition : 원본
- Follower Partition : 복제본
ISR (In Sync Replica)
Producer는 브로커에게 데이터를 전달할 때 리더 파티션에 데이터를 전송하고 리더 파티션이 팔로워 파티션에게 데이터를 다시 전달하는 방식으로 브로터가 운영이 된다.
- 고가용성을 위해 사용된다.
- 브로커가 사용 불가하게 된다면 해당 파티션은 복구할 수 없게 된다
- 복제본이 존재하게 된다면 해당 파티션이 리더 파티션이 되면서 정상적으로 데이터를 운영할 수 있게 된다.
1. ack = 0
- 프로듀서가 데이터를 리더파티션에 전달하고 응답값을 받지 않는다.
- 정상적으로 리더 파티션이 받았는지, 팔로워가 받았는지 확인할 수 없다.
- 데이터 유실 가능성이 있지만 빠르다.
2. ack = 1
- 리더파티션에 전송하고 응답값은 받지만 팔로워 파티션이 받았는지 확인이 불가능하다.
- 데이터 유실 가능성이 있다. (리더가 받자마자 바로 장애가 생겼을 경우)
3. ack = all
- 리더파티션에 전송하고 리더 파티션이 팔로워 파티션에 데이터를 전송(복제)하였는지까지의 응답값을 받는다.
- 데이터 유실 가능성은 없지만 느리다.
Replication
Replication의 개수가 많아지면 브로커의 개수도 많아지면서 데이터 사용량이 늘어나게 된다.
저장시간과 데이터의 양을 생각해서 Replication의 개수를 정해야 한다!