kafka 기본개념

4) kafka replication factor / ISR 개념

saay-hi 2024. 6. 24. 14:20

[ partition & replication 비교 ]

 [partition 1 , replication factor 1인 경우 ]               [ partition 1, replication factro 3 인 경우 ]

- replication  factor 값을 높이게 되면 가용성이 증가하게 됨. 하지만 디스크 사용량이 배가 되며 broker의 일부 리소스 사용량 또한 증가

- replication factor 값을 무작정 높게 설정하기보다는 해당 topic에 저장되는 data의 중요도에 따라 적절히 값을 조정하여 운영 권장

 

[ ISR ]

- ISR : In Sync Replication 으로 replication group 역할

- 구성 : leader replica, leader replicat와 동기화가 이루어진 follower replica

- 동기화 : 동기화를 하기 위해서 follower replicat들은 fetch(메시지 읽기) 요청을 leader replicat에게 보내고, leader replicat는 그 응답으로 follower replica들에게 메시지를 전송

- fetch 요청에는 follower replicat들이 다음으로 받기 원하는 메시지의 offset이 포함되며, 항상 수신된 순서대로 처리

- leader replicat가 중단되는 경우에는 ISR에 속해있는 follower replicat 중 하나가 leader replicat로 선출

- follower replicat가 일정시간 이상 fetch 요청을 하지 않거나, 요청은 했지만 시간 안에 leader replicat의 마지막 offset의 메시지를 복제하지 못한다면 동기화 실패로 간주

- ( leader replicat는 해당 follower replicat 를 ISR에서 제거. 해당 시간은 broker 설정 파일의 replicat.lag.time.max.ms 값으로 설정 )