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

흰색남자님의 프로필 이미지
흰색남자

작성한 질문수

카프카 완벽 가이드 - 코어편

idempotence(멱등성) 기반 중복 없이 전송 이해

카프카와 주키퍼랑 통신할때는 브로커 서버의 어느 컴포넌트를 사용해 통신하나요?

작성

·

282

0

카프카와 주키퍼랑 통신할때는 브로커 서버의 어느 컴포넌트를 사용해 통신하나요?

컨수머는 컨수머 그룹 코디네이터와 통신하고,, 파티션은 파티션 리더와 통신하는데,

>> 질문 : 브로커 서버( 카프카 서버) 와 주키퍼는 어느 컴포넌트를 통해서 통신하나요?

 

머신러닝때부터 감사합니다 하하... 많이 배우고 있습니다.

답변 1

1

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

많이 배우고 계시다니 저도 뿌듯하군요.

브로커 서버와 주키퍼간에 통신이 특정 컴포넌트를 기반으로 한다기 보다는,

주키퍼는 디렉토리 트리 기반의 node를 여러개의 모든 브로커들이 모니터링하고 있다가 변경사항이 발생하면 이를 통보받아서 처리하는 로직으로 되어 있습니다.

가령 컨트롤러 브로커를 정할 때 최초 컨트롤러 브로커는 zookeeper의 /controller 노드에 지정되게 됩니다. 그리고 다른 브로커들도 주키퍼에 /controller 노드를 생성하려고 하지만 이미 해당 노드가 생성되었다는 오류 메시지를 받게 됩니다.

이후에 다른 브로커들은 Zookeeper watch를 통해서 이 노드를 모니터링하게 되고, 해당 노드에 변경사항이 발생하면 주키퍼로 부터 변경사항을 통보받고 /controller 노드에 등록하고 컨트롤러 브로커가 되려는 시도를 합니다.

예를 들어 기존 컨트롤러 브로커가 특정 시간동안 응답이 없으면 주키퍼는 /controller 노드를 삭제하고 변경 사항은 Zookeeper watch를 통해 다른 브로커에 전송됩니다. 그리고 주키퍼에 첫번째 controller 노드를 생성하는 브로커가 컨트롤러 브로커가 됩니다.

브로커와 주키퍼는 이런 메커니즘으로 동작하는데, 이걸 어떤 특정 컴포넌트가 전담해서 하는지는 저도 잘 모르겠습니다(문서에도 나오지 않습니다)

감사합니다.

흰색남자님의 프로필 이미지
흰색남자
질문자

감사합니다!!!!

흰색남자님의 프로필 이미지
흰색남자

작성한 질문수

질문하기