ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [카프카(Kafka)] 주키퍼의 역활 정리
    Kafka 2019. 3. 11. 11:53


    주키퍼는 카프카 클러스터를 관리하고 조정하는 코디네이터 역활을 한다.

    (카프카 클러스터는 카프카 브로커, 프로듀서 컨슈머 포함한다. )



    새로운 브로커 추가나 기존 브로커 감시하고 브로커 목록이 추가나 삭제에 의해서 변화될 경우,

    주키퍼는 이런 상태를 프로듀서나 컨슈머에게 통보하여 활성화된 브로커과 동작을 원활하게 한다. (리벨런싱)

    또한 특정 토픽의 파티션에 대해서 리더와 팔로워를 기록하고, 프로듀서나 컨슈머에게 정보를 제공한다. 


    카프카는 주키퍼 없이 동작하지 못한다. 

    주키퍼의 역활에 대해서 좀더 알아보자. 


    주키퍼 역활

    컨트롤러 선정

    컨트롤러는 파티션 관리를 책임지는 브로커 중 하나이다. 

    파티션 관리는 리더 선정, 토픽 생성, 파티션 생성, 복제본 관리 등을 포함한다. 

    하나의 브로커가 장애가 발생하면 카프카 컨트롤러는 팔로워 중에 하나의 브로커를 리더로 선출한다. 

    선출한 리더를 다른 브로커들에게 알린다. 

    리터 선출 시 주키퍼의 메타데이터 정보를 참조한다. 

    주키퍼는 현재의 컨트롤러가 장애가 나면 새로운 컨트롤러가 선정되는 것을 보장한다. 

    링크 참조 


    브로커 메타데이터 

    주키퍼는 카프카 클러스터안의 모든 브로커에 대해 상태 정보를 기록한다. 

    프로듀서와 컨슈머는 주키퍼를 통하여 브로커 상태 정보를 얻는다. 


    토픽 메타데이터

    주키퍼는 파티션 수, 특정한 설정 파라미터 등 토픽 메타데이터를 기록한다. 


    클라이언트 할당 정보

    카프카 토픽의 메시지를 읽고 쓰는 클라이언트에 대한 바이트 비율의 임계값을 제한하며, 모든 정보와 상태는 주키퍼가 관리한다. 


    카프카 토픽 ACLs

    카프카는 내장된 인증 모듈, 즉 접근 제어 목록을 가지고 있다. 

    ACLs는 사용자 역활과 관련된 토픽에 대해 읽기와 쓰기 권한 종류를 결정하고, ACLs 정보는 주키퍼가 저장한다. 


    마치며

    주키퍼의 역활에 대해서 정리를 하였다. 

    카프카 보안 관련 글을 쓸 때 ACLs에 대해 좀 더 자세히 다루도록 한다. 



    댓글

Designed by Tistory.