kafka clustering 테스트 시 서비스의 연속성에 대해서 고민 했고,
찾다 보니 min.insync.replicas 라는 옵션이 있었다.
옵션 설명이 좀 거지같은데, 테스트 해본 결과
서비스 연속성에 있어 살아있어야 하는 최소 broker 수 로 말하면 좀 쉽게 이해가 될 수 있을 것이다.
즉, 설정된 값 만큼은 broker가 살아있어야 서비스가 된다는 말이다.
[ chat gpt 3.5]
User 최소 인-싱크 복제본 이라는게 min.insync.replicas 옵션인거? ChatGPT 네, 맞습니다. "최소 인-싱크 복제본"은 Kafka의 min.insync.replicas 옵션을 가리킵니다. 이 옵션은 토픽에 대한 최소한의 인-싱크 복제본 수를 지정합니다. min.insync.replicas 옵션은 특정 토픽에 대해 메시지가 커밋되기 전에 필요한 최소한의 인-싱크 복제본 수를 설정합니다. 이 값은 주로 트랜잭션 로그나 안정적인 메시지 전달을 보장하는 데 사용됩니다. 메시지가 커밋되기 위해서는 이 설정된 최소한의 복제본 수가 메시지를 성공적으로 복제해야 하므로, 데이터의 안정성과 내구성을 유지하는 데 중요한 역할을 합니다. 따라서 min.insync.replicas 옵션은 데이터의 안정성과 내구성을 보장하기 위해 중요한 설정 중 하나입니다. 설정된 값에 따라 토픽의 안정성이 달라지며, 적절한 값을 선택하는 것이 중요합니다. |
★구성 : 서버 3대 clustering, 이하 broker1,2,3 이며 zookeeper 1,2,3은 broker 1,2,3에 떠있는 zookeeper임
★ 서비스 버전 : os - rocky 8 / kafka 3.7.0 / zookeeper (kafka 3.7.0 안의 zookeeper 3.8.3 사용)
★ 모니터링 : kafka-topics.sh, kafka-consumer-groups.sh 로 모니터링
★ 테스트 : 별도 서버에서 produce / consumer api 기동
min.insync.replicas=1
더보기
ISR 순 | 테스트 |
isr 1,2,3 | [broker 1 down] 모니터링 잠깐 에러 났으나 정상화 produce/consume 이슈없음 [zookeeper 1 down] produce/consume 정상 수행. offset번호가 살짝 역행(?) 했던 것 같지만 그냥 기분탓이었던걸로. [broker 3 down] 모니터링 잠깐 에러났으나 정상화 produce/consume 이슈없음 [zookeeper 3 down] 모니터링 에러 ------------------------------------------ [2024-04-02 17:02:44,738] WARN [AdminClient clientId=adminclient-1] Connection to node -3 ( broker3/35.224.235.168:9092) could not be e stablished. Node may not be available. (org.apache.kafka.clients.NetworkClient) Error while executing topic command : Call(callName=describeConfigs, deadlineMs=1712045025147, tries=2, nextAllowedTryMs=1712045025356 ) timed out at 1712045025173 after 2 attempt(s) [2024-04-02 17:03:45,234] ERROR org.apache.kafka.common.errors.TimeoutException: Call(callName=describeConfigs, deadlineMs=17120450251 47, tries=2, nextAllowedTryMs=1712045025356) timed out at 1712045025173 after 2 attempt(s) Caused by: org.apache.kafka.common.errors.DisconnectException: Cancelled describeConfigs request with correlation id 8 due to node 2 b eing disconnected (org.apache.kafka.tools.TopicCommand) -------------------------------------------- ★ ★ broker/zookeeper 1,3 down 되었으나 produce/consume 이슈없음 ★ ★ [zookeeper 1 up] 모니터링 정상화 [broker 1 up] kafka topic data 2번과 동기화 완료 [broker 2 down] 모니터링 잠깐 에러났으나 정상화 produce/consume 이슈없음 [zookeeper 2 down] produce/consume 이슈없음 ★ ★ broker/zookeeper 2,3 down 되었으나 produce/consume 이슈없음 ★ ★ 나머지 전체 기동 및 topic data 동기화 확인 완료 |
min.insync.replicas=2
더보기
ISR 순서 | 테스트 |
isr 1,3,2 | [broker 1 down] 모니터링 잠깐 에러났으나 정상화 produce/consume 이슈없음 [broker 2 down] consumer groups offset 값 변동 없음, LAG 인입 없음 (0) produce는 watch로 10초간 데이터가 들어가는 걸로 보이나, consume API에서 데이터 consume 반응 없음. broker3의 kafka topic data는 broker 2가 내려간 시점부터 데이터 로그파일 사이즈 증가 안함. [zookeeper 1 down] 안됨 여전히 [zookeeper 2 down] 모니터링 에러 [broker 1 up] 프로세스 잠깐 떠있다 죽음 [broker 2 up] 프로세스 잠깐 떠있다 죽음 broker 1,2 기동 잠시 되었으나 topic data는 동기화 안됨 [zookeeper 순차 기동 1->2] 데이터 3대 전부 32,33분 이후 변동 없고 produce api는 그냥 계속 돌아가는중 [broker 1 up] topic data 동기화 및 살아있는 broker(1,3번) 데이터 흐름 확인 produce/consume 정상 확인 ★ ★ broker/zookeeper 2개는 떠야 produce/consume 이슈없음 ★ ★ [broker 2 up] topic data 동기화 확인 완료. |
728x90
'업무 > kafka zookeeper' 카테고리의 다른 글
apache kafka :: kraft (0) | 2024.09.12 |
---|---|
[etc] Kafdrop (0) | 2024.07.16 |
[업무][kafka] 설치 구성 가안 (0) | 2024.04.01 |
[zookeeper] snapshot data(version-2) 정리 (update 240402) (0) | 2024.03.21 |
[zookeeper] port 접속 현황 이게 맞는거임...? (0) | 2024.03.07 |