kafka 테스트/옵션 테스트
[config]min.insync.replicas 테스트
saay-hi
2024. 6. 27. 09:27
[ 1 ] min.insync.replicas=2인 경우
test 방법
1) kafka 중단 2) broker1,2,3 kafka server.properties 파일 내 min.insync.replicas =2 확인 (default 값 2) 3) kafka 재기동 4) producer api config의 acks값이 all인지 확인 (아닐 경우, 해당 옵션 값을 all로 수정) 후 기동 5) kafka 서비스 1개 down (broker 순서 무관) 6) topic 및 브로커 log 모니터링을 통한 서비스 정상 여부 확인 7) kafka 서비스 1개 down (broker 순서 무관) 8) topic 및 브로커 log 모니터링을 통한 서비스 정상 여부 확인 |
partition : replication factor | broker3대 | broker2대 | broker1대 | ||
test01 | 1 : 1 | O | O | O | |
test02 | 1 : 2 | O | O | X | |
test03 | 1 : 3 | O | O | X |
replication factor가 2인 topic test02에게 producer api에서 메세지를 보낸 후,
broker 1에
라는 에러 문구가 떨어지면서 데이터 취득 하지 못함 (topic 상태 조회결과 topic의 사이즈 증량하지 않음)
동일하게 replication factor가 3인 test03역시,
동일한 에러 문구가 뜨면서 더 이상 topic취득하지 않음
[ 2 ] min.insync.replicas=1인 경우
test 방법
1) kafka 중단 2) broker1,2,3 kafka server.properties 파일 내 min.insync.replicas =1 변경 (default 값 2) 3) kafka 재기동 4) producer api config의 acks값이 all인지 확인 (아닐 경우, 해당 옵션 값을 all로 수정) 후 기동 5) kafka 서비스 1개 down (broker 순서 무관) 6) topic 및 브로커 log 모니터링을 통한 서비스 정상 여부 확인 7) kafka 서비스 1개 down (broker 순서 무관) 8) topic 및 브로커 log 모니터링을 통한 서비스 정상 여부 확인 |
partition : replication factor | broker3대 | broker2대 | broker1대 | ||
test01 | 1 : 1 | O | O | O | |
test02 | 1 : 2 | O | O | O | |
test03 | 1 : 3 | O | O | O |
- 결론 : min.insync.replicas 가 2일 경우, replication factor 가 2 이상일 때 그만큼의 ISR 멤버가 기동되어야 함
참고 ) 해당 test는 producer api로만 message를 정상적으로 보내지는지 테스트 한 것이기 때문에, 개별 broker들이 consumer group으로 묶이지 않아 leader가 기동 중단될 경우 leader가 변경되지 않음 ( topic의 leader 가 중단될 시, leader : none이라고 뜨고 데이터를 취득하지 않음 (topic 사이즈 증량x))