Data Engineering/Kafka

[Kafka] 아파치 카프카 기초 - Broker, Replication, ISR

Zyung 2023. 7. 16. 16:02

https://youtu.be/qpEEoGpWVig

 

카파치 브로커

: 카프카가 설치되어 있는 서버 단위

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의 개수를 정해야 한다!