Kafka broker
카프카가 설치되어 있는 서버 단위
보통 3개 이상의 브로커 권장
또 여러개의 브로커가 모여있는 것을 카프카 클러스터라고 부른다.
replication : 복제
클러스터에서 서버에 장애가 생겼을 때 카프카의 가용성을 보장하는 방법
말 그대로 데이터를 복제해서 저장해두는 것인데,
replication은 broker의 갯수로 한정된다.
broker가 3개(서버 3대)라면, replication은 최대 3(원본 leader partition 1 + 복제본 follower partition 2)까지 가능하다는 것이다.
Kafka의 Producer가 kafka 클러스터에 메시지를 보내면 leader partition이 받는다.
또한 메세지를 보낼 때 ack값을 보내는데 0,1,all이라는 세개의 옵션이 있다.
ack = 0 ) producer가 leader partition에 메시지를 전송하고 응답값을 받지 않는다.
속도는 빠르지만 제대로 데이터가 갔는지 보장할 수 없다. 유실가능성이 있다.
ack = 1 ) producer가 leader partition에게 메시지를 전송하고 leader partition이 데이터를 정상적으로 받았는지 응답받는다.
다만 복제까지 되었는지는 알 수 없다. leader partition이 위치한 브로커에 장애가 발생하면 데이터가 유실될 수 있다.
ack = all ) producer가 follower partition까지 복제가 완료되었는지 응답받는다.
속도 현저히 느리지만 데이터 유실 가능성은 거의 없다.
속도/디스크 용량과 데이터 유실 가능성이라는 트레이드 오프가 존재한다.
따라서 데이터의 용량과 저장시간을 고려해서 replication을 적절히 지정해주어야한다.
다만 3개 이상의 브로커를 사용할 때 replication은 3 이상을 유지하는 것이 추천된다.
ISR
같은 데이터를 품고있는 leader partition과 follower partition들을 합쳐서 ISR(In Sync Replica)라고 부른다.
'Kafka' 카테고리의 다른 글
아파치 카프카 | 파티셔너, 컨슈머 랙 (0) | 2022.03.09 |
---|