Kafka Consumer

Kafka Consumer

카프카에서는 Consumer 가 데이터를 가져가도 데이터가 사라지지 않는다.

  • Kafka Consumer 는 기본적으로 Topic 의 데이터를 가져온다.
    • 데이터를 가져오는 것을 Polling 이라고 한다.
  • Partition Offset 위치 기록(Commit)
  • Consumer Group 을 통해 병렬 처리

offset

메시지가 파티션 내에서 가지는 고유의 번호

  • offset 은 토픽 별로 파티션 별로 별개로 지정된다.
  • Consumer 가 데이터를 어느지점까지 읽었는지 확인하는 용도로 사용한다.
  • Consumer 가 데이터를 읽어가면 offset 을 Commit 한다.
    • Consumer 가 Partition 의 읽은 위치(offset) 은 Kafka 의 __Consumer_offset 토픽에 저장된다.
    • Consumer 가 중지가 되더라도 시작 위치를 알고 있으므로 다시 복구하여 데이터를 처리할 수 있다.

Multiple Consumer

  • Consumer 개수는 Partition 개수보다 적거나 같아야 한다.
  • 여러 Partition 을 가진 Topic 에 대해 Consumer 가 병렬 처리하게 하기 위해서는 Consumer 가 Partition의 개수보다 작아야 한다.

다른 Consumer Group

  • 각기 다른 Consumber Group 은 다른 Consumer Group 에 영향을 미치지 않는다.
  • Consumer Group 별로 Topic 별로 offset 을 나누어 저장하기 때문이다.
Share