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 을 나누어 저장하기 때문이다.