saay, hi

[config]min.insync.replicas 테스트 본문

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))