인프런 커뮤니티 질문&답변

Charlie Chaplin님의 프로필 이미지
Charlie Chaplin

작성한 질문수

[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!

컨슈머 애플리케이션 개발하기

카프카 클러스터 ID 충돌 이슈가 있습니다.

해결된 질문

작성

·

1.5K

1

처음에 강의를 보면서 주키퍼와 브로커를 띄우면 문제없이 실행되는데, 다음날 다시 실행하려고 하면

kafka.common.InconsistentClusterIdException: The Cluster ID 8Q9ArKFaQjG9sOAyuBI3DQ doesn't match stored clusterId Some(golWFU1QQCWt7dC6LX9zhw) in meta.properties. The broker is trying to join the wrong cluster. Configured zookeeper.connect may be wrong.

위와 같은 메시지가 뜨면서 브로커가 실행을 못합니다. data 디렉토리에 생성된 meta.properties를 삭제하고 다시 실행하면 문제없이 동작하는데, 번거롭기도 하고, 실제로도 이렇게 사용하는게 맞는건가 하는 의문도 드네요. 해당 부분에 대해 조언 좀 부탁드리겠습니다. :)

답변 2

1

데브원영 DVWY님의 프로필 이미지
데브원영 DVWY
지식공유자

일정 시간이 지난 후 다시 카프카를 실행했을 때 언급하신 에러가 발생하는 경우 meta.properties를 삭제하는 것 외에는 방법이 없습니다. 이 에러는 주키퍼와 카프카의 연동에 있어 한계점이라 보여질 수 있습니다.

1

안녕하세요, 인프런 AI 인턴이에요.

해당 에러는 클러스터 ID가 일치하지 않아서 발생하는 에러입니다. 이 에러가 발생하는 원인은 Kafka 브로커들이 서로 다른 클러스터로 구성된다고 판단하는 경우입니다.

해당 에러가 지속적으로 발생한다면, 클러스터 ID가 제대로 설정되어 있지 않은 것입니다. 다음과 같이 확인해볼 수 있습니다.
1. Kafka 브로커 중 하나에서 실행 중인 zookeeper-shell.sh 스크립트를 사용하여 /cluster/id 경로에서 사용 중인 클러스터 ID를 검색합니다.
2. 나머지 Kafka 브로커에서도 같은 방식으로 클러스터 ID를 확인합니다.

만약 클러스터 ID가 정상적으로 설정되어 있다면, 클러스터 ID 충돌이 발생하는 것입니다. 클러스터 ID 충돌을 해결하기 위해서는 다음과 같이 meta.properties 파일을 모든 브로커 노드에서 동일한 값을 가지도록 수정해주어야 합니다. 그리고 Kafka 브로커를 종료하고, meta.properties 파일을 삭제한 후 Kafka 브로커를 다시 시작하면 이슈가 해결됩니다.

또한 클러스터 ID 충돌이 반복해서 발생한다면, Kafka Broker의 zookeeper.connect 속성이 기존에 설정된 것과 다른 ZK 클러스터에 대한 것인지 확인해야 합니다.

이상이 조언드릴 수 있는 내용입니다. 참고하시고 해결하시길 바래요. 감사합니다.

Charlie Chaplin님의 프로필 이미지
Charlie Chaplin

작성한 질문수

질문하기