ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Kafka] Partition Ownership 알아보기
    Kafka 2024. 1. 5. 06:12
    728x90
    반응형

    - 목차

     

    소개.

    Partition Ownership 은 어떤 Partition 을 소비할 수 있는 Consumer 가 누구인지를 지칭하는 표현입니다.

    예를 들어, 아래와 같은 TopicConsumer Group 의 관계가 있다고 생각해보겠습니다.

    이때에 Consumer 1Partition 1Ownership 을 가집니다.

    그리고 Consumer 2, 3, 4 또한 Partition 2, 3, 4Ownership 을 가집니다.

    Partition Ownership

     

    Partition Ownership 의 범위는 Consumer Group 으로 제한합니다.

    Consumer GroupConsumer 마다 Partition Ownership 을 가지며,

    Partition Ownership 을 가지는 ConsumerTopicPartition 을 소비할 수 있습니다.

     

    Partition Ownership 에 대한 정보는 __consumer_offsets Topic 에 저장되어 있습니다.

    그리고 Consumer GroupLeaderCoordinator__consumer_offsets Topic 의 정보를 기반으로

    Partition Assignment 를 수행합니다.

    이어지는 내용에서 Group Coordinator, Consumer Group Leader 등에 대해서

    자세히 알아보도록 하겠습니다.

     

    Consumer Group Leader.

    Consumer Group Leader 는 Consumer 들 중의 하나입니다.  Group Leader 가 결정되는 방식은 선착순인데요.

    Consumer 는 Broker 에게 JoinGroup Request 를 전달하여 Consumer Group 의 생성과 합류를 요청합니다.

    이러한 JoinGroup 요청은 모든 Consumer 들에 의해서 수행되며,

    제일 먼저 요청한 Consumer 가 Consumer Group 의 Leader 가 됩니다.

     

    아래 그림처럼 Consumer 1 이 첫번째로 JoinGroup 을 요청하게 된다면, Consumer 1 이 Group Leader 가 됩니다.

    the Sequence of JoinGroup

     

     

    Kafka Broker 들 중의 Controller 처럼 Consumer Group Leader 또한 하나의 Consumer 입니다.

    그래서 Topic 의 Partition 을 소비하는 Consumer 로써의 역할과 Leader 로써의 역할을 겸합니다.

    즉, 학급의 반장과 같은 역할이죠. 공부도 해야하고 학생들의 리더가 되어야합니다.

     

    Consumer Group LeaderGroup Coordinator 와 소통하며 Partition - Consumer 의 매칭 정보를 생성합니다.

    이것은 Kafka 의 중요한 원칙인데요. Client 에게 많은 책임과 역할을 부여합니다.

    Client-Side 에서 Partition 과 Consumer 의 매칭 정보를 Group Coordinator 에게 제공하고,

    Group CoordinatorBroker 는 그 실행 정보를 실행시키기만 합니다.

     

    Group Coordinator.

    Group CoordinatorConsumer GroupPartition Ownership 을 설정하고, 관리하는 역할을 수행합니다.

    Partition <-> Consumer 간의 매칭하는 작업을 수행하죠.

    그리고 Group Coordinator 는 여러 Broker 들 중의 하나입니다.

    즉, Group Coordination 은 Kafka Broker 의 역할 중의 하나인 것이죠.

    Consumer Group 마다 Group Coordination 을 수행하는 Broker 는 달라질 수 있습니다.

    아래 이미지처럼 각 Consumer GroupCoordination 하는 Broker 는 달라집니다.

    Relation between Broker and Consumer Group

     

     

    이렇게 Group CoordinatorConsumer Group 내부의 Consumer 들과 Partition 을 연결하게 됩니다.

     

    반응형
Designed by Tistory.