TIL

6.2 그룹 코디네이터

graph LR
    subgraph Broker
        GC(그룹 코디네이터)
    end

    subgraph ConsumerGroup
        C1(컨슈머 1)
        C2(컨슈머 2)
    end

    ConsumerGroup --> GC

컨슈머 그룹 등록 과정

  1. 컨슈머는 컨슈머 설정 값 중 bootstrap.brokers 리스트에 있는 브로커에게 컨슈머 클라이언트와 초기 커넥션 연결을 위한 요청을 전송
  2. 요청을 받은 브로커는 그룹 코디네이터를 생성하고 컨슈머에게 응답을 보낸다.
  3. 그룹 코디네이터는 group.initial.rebalance.delay.ms 시간 동안 컨슈머 요청을 기다린다.
  4. 컨슈머는 컨슈머 그룹 등록 요청을 그룹 코디네이터에게 전송하는데 가장 먼저 요청 보낸 컨슈머가 그룹의 리더가 된다.
  5. 컨슈머 등록 요청을 받은 그룹 코디네이터는 해당 컨슈머 그룹이 구독하는 토픽 파티션 리스트 등 리더 컨슈머의 요청에 응답을 보낸다.
  6. 리더 컨슈머는 컨슈머 파티션 할당 전략에 따라 그룹 내 컨슈머들에게 파티션을 할당 한 뒤 그룹 코디네이터에 전달
  7. 그룹 코디네이터는 해당 정보를 캐시하고 각 그룹 내 컨슈머들에게 성공을 알린다.
  8. 각 컨슈머들은 지정된 토픽 파티션으로부터 메시지를 가져온다

컨슈머 변경 감지