[Apache Kafka] Producer & Consumer

DaeHoon·2022년 1월 21일
0

Producer & Consumer

  1. 프로듀서는 레코드를 생성하여 브로커로 전송
  2. 전송된 레코드는 파티션에 신규 오프셋과 함께 기록됨
  3. 컨슈머는 브로커로 부터 레코드를 요청하여 가져감(polling)

Example

1. 파티션이 3개인 토픽과 컨슈머 1대

  • 3개의 파티션, 1개의 토픽
  • 1개의 프로듀서가 토픽에 레코드를 보내는 중
  • 1개의 컨슈머가 3개의 파티션으로부터 polling 중

2. 파티션이 3개인 토픽과 컨슈머 3대

  • 3개의 파티션, 1개의 토픽
  • 1개의 프로듀서가 토픽에 레코드를 보내는 중
  • 1개의 컨슈머가 3개의 파티션으로부터 polling 중

3. 파티션이 3개인 토픽과 컨슈머 4대

  • 파티션 개수가 컨슈머 개수보다 적으므로 Consumer #4는 파티션을 할당받지 못함

4. 컨슈머 3대 중 1대 장애 발생


• 컨슈머 중 한개가 장애가 난 경우에 대한 대비 가능
• 리밸런스 발생 : 파티션 컨슈머 할당 재조정
• 나머지 컨슈머가 파티션으로 부터 polling 수행

5. 2개 이상의 컨슈머 그룹

  • 목적에 따른 컨슈머 그룹을 분리할 수 있음.
  • 컨슈머 그룹간 간섭(coupling)을 줄임.
  • Consumer Group B에 이슈가 발생해 적재지연이 발생하더라도 Group A의 동작에는 이슈가 없음.

사진 인용 및 출처

profile
평범한 백엔드 개발자

0개의 댓글