[Kafka] Consumer 의 역할

Woong·2021년 12월 28일
0

Apache Kafka

목록 보기
11/14

topic 구독하기

  • topic을 구독하면, 컨슈머 그룹에 할당된 파티션에서 데이터를 읽는다.
  • 레코드를 가져오기 위해 카프카 서버를 조사하는 과정을 폴 루프(poll loop)라 함

Consumer offset 위치

  • kafka는 메시지 offset 을 보유하지 않는다.
  • 각 consumer 는 자신의 consumer offset 을 유지한다.
    • consumer API 를 사용해 유지됨
    • 원하면 커스텀 로직을 작성하여 offset 커밋 가능

재연/되감기(rewind)/메시지 스킵

  • consumer 는 consumer API를 사용해 topic 파티션에서 메시지를 읽을 시작 offset을 전달
    • 파티션의 현재 offset 과 무관하게 처음부터 또는 특정 offset 부터 메시지 읽기 가능
    • 메시지를 재연 또는 스킵 가능

heatbeat

  • consumer group 리더(=broker)로 하트비트 신호를 주기적으로 보내야한다.
    • consumer group 리더가 하트비트 수신 못할시, 파티션 소유권이 consumer 그룹 내 다른 consumer에게 다시 할당

offset 커밋

  • partition offset 과 커밋 관리는 consumer 의 역할
    • 카프카는 개별 consumer 의 메시지 offset 관리를 안함
      • broker 성능 향상
      • consumer 에서 시나리오에 따라 자신의 offset 을 유연하게 관리
  • batch 처리 완료 후 commit 하거나,
  • 매우 큰 batch 처리 중간에 rebalance 부작용을 줄이기 위해 커밋하기도 함

역직렬화 deserialization

  • producer에서 메시지를 직렬화하였으므로 consumer 에서는 역직렬화하여 사용

0개의 댓글