얼렁뚱땅 스며드는 Data Science

카테고리 없음

[Kafka] Apache Kafka 초보 4 : 컨슈머 그룹 & 컨슈머 오프셋

Jesip14 2024. 7. 3. 11:16

이 글은 Udemy의 '초보자를 위한 아파치 카프카 강의 v3'를 듣고 정리한 내용이다.

 

컨슈머 그룹

  • 컨슈머는 그룹형태로 데이터를 읽어옴
  • 그룹 안의 컨슈머들은 각각 상호배타적으로 파티션을 읽어옴
  • 만약 파티션의 개수보다 컨슈머가 많은면, 여유분은 stand by

 

컨슈머 오프셋

  • 커밋된 offset은 '__consumer_offset'이라는 카프카 토픽으로 저장
  • 데이터가 충돌나거나 실패한 곳 (offset)부터 읽어올 수 있음
  • java consumer는 자동으로 offset commit
  • 수동 커밋
    • at least once (주로 사용됨)
      • 메시지가 처리된 후 오프셋이 커밋됨
      • 문제가 생겼을때 다시 읽을 수 있음(멱등성 보장)
      • 메시지 중복이 발생될 수 있음
    • at most once
      • 메세지가 도착하자 마자 바로 오프셋 커밋
      • 문제가 생겼을때 일부 메시지 유실
    • exactly once
      • kafka - kafka workflow에서 사용 : 토픽을 읽고 그 결과를 토픽에 다시 기록할때 트랜잭션 api 사용가능
      • kafka - external system에서 사용 : 멱등 컨슈머 사용해야함