kafka 테스트/옵션 테스트

[config]offsets.topic.replication.factor 테스트

saay-hi 2024. 6. 27. 15:15

offsets.topic.replication.factor :

오프셋 토픽(__consumer_offsets)의 replication factor를 지정. 클러스터 크기가 이 값보다 작으면 internal topic 생성에 실패함.

( __consumer_offsets : 각 topic에 대한 커밋된 오프셋에 대한 정보를 저장하는 데 사용된다. )

클러스터 크기가 이 복제 요소 요구 사항을 충족할 때까지 내부 topic 생성이 실패함


[ test 방법 ]

 offsets.topic.replication.factor=1

1) kafka 중단 -> zookeeper 중단
2) broker1,2,3 kafka server.properties 파일 내 offsets.topic.replication.factor 값 1로 수정 
3) cp -a /kaf_data /kaf_data_bk 등 데이터 파일 백업
4) /kaf_data, /zoo_data/snapshot/version-2/, /zoo_data/translog/version-2 아래의 데이터 삭제 (디렉토리 삭제x)
5) zookeeper 기동 -> kafka 기동
6) producer/conumer api 기동 및 kaf_data에 offset 파일 생성 확인

[ broker 별 data 조회 결과 ]

broker 1 / broker 3 data 결과 조회

 [ offsets.topic.replication.factor=2 ]

1) kafka 중단 -> zookeeper 중단
2) broker1,2,3 kafka server.properties 파일 내 offsets.topic.replication.factor 값 2로 수정 
3) cp -a /kaf_data /kaf_data_bk 등 데이터 파일 백업
4) /kaf_data, /zoo_data/snapshot/version-2/, /zoo_data/translog/version-2 아래의 데이터 삭제 (디렉토리 삭제x)
5) zookeeper 기동 -> kafka 기동
6) producer/conumer api 기동 및 kaf_data에 offset 파일 생성 확인

[ broker 별 group 조회 결과 ]

broker 1,2,3 조회

 

[ broker 별 data 조회 결과 ]

broker 1,2,3 data 조회

[ offsets.topic.replication.factor=3 ]

1) kafka 중단 -> zookeeper 중단
2) broker1,2,3 kafka server.properties 파일 내 offsets.topic.replication.factor 값 3으로 수정 
3) cp -a /kaf_data /kaf_data_bk 등 데이터 파일 백업
4) /kaf_data, /zoo_data/snapshot/version-2/, /zoo_data/translog/version-2 아래의 데이터 삭제 (디렉토리 삭제x)
5) zookeeper 기동 -> kafka 기동
6) producer/conumer api 기동 및 kaf_data에 offset 파일 생성 확인

[ broker 별 group 조회 결과 ]

[ broker 별 data 조회 결과 ]

 


[ 결과 및 의견  ]

offsets.topic.replication.factor 옵션값을 3node기준 1로 변경해버리면, 세 개의 broker 가 각자 다른 __consumer_offsets을 갖게됨.

옵션값을 2로 바꾸게 될 경우 broker 3개중 2개만 동일 __consumer_offsets을 갖게됨

3개로 변경시, 모두 같은 __consumer_offsets을 소유함.

  1. consumer 측이 어디까지 가져갔는지, 모든 broker에서 확인하기 위해서
  2. 브로커 장애날 시, consumer가 commit해간 정보가 누락될 수 있으니 

→ broker수만큼 offsets.topic.replication.factor수 조정하는 것을 권장