리스너 타입
- 레코드 리스너(MessageListener)
- 단 1개의 레코드 처리
- 스프링 카프카 컨슈머의 기본 리스너 타입
- 배치 리스너(BatchMessageListener)
- 한 번에 여러 개의 레코드 처리
Acknowledging 이 붙은 리스너
- Manual Commit 을 사용하는 경우 (AcksMode: MANUAL, MANUAL_IMMEDIATE)
ConsumerAware 가 붙은 리스너
- KafkaConsumer 인스턴스에 직접 접근하여 컨트롤하고 싶을 때
RecordListener - Record 인스턴스 단위로 프로세싱
Listener | 생성 메서드 파라미터 | Desc |
MessageListener | onMessage(ConsumerRecord<K, V> data) onMessage(V data) |
오토 커밋 또는 컨슈머 컨테이너의 AckMode를 사용하는 경우 |
AcknowledgingMessageListener | onMessage(ConsumerRecord<K, V> data, Acknowledgment acknowledgment) onMessage(V data, Acknowledgment acknowledgment) |
매뉴얼 커밋을 사용하는 경우 |
ConsumerAwareMessageListener | onMessage(ConsumerRecord<K, V> data, Consumer<K, V> consumer) onMessage(V data, Consumer<K, V> consumer) |
컨슈머 객체를 활용하고 싶은 경우 |
AcknowledgingConsumerAwareMessageListener | onMessage(ConsumerRecord<K, V> data, Acknowledgment acknowledgment, Consumer<?, ?> consumer) onMessage(V data, Acknowledgment acknowledgment, Consumer<K, V> consumer) |
매뉴얼 커밋을 사용하고 컨슈머 객체를 활용하고 싶은 경우 |
BatchListener - Records 인스턴스 단위로 프로세싱
Listener | 생성 메서드 파라미터 | Desc |
BatchMessageListener | onMessage(ConsumerRecords<K, V> data) onMessage(List<V> data) |
오토 커밋이나 컨슈머 컨테이너의 AckMode를 사용하는 경우 |
BatchAcknowledgingMessageListener | onMessage(ConsumerRecords<K, V> data, Acknowledgment acknowledgment) onMessage(List<V> data, Acknowledgment acknowledgment) |
매뉴얼 커밋을 사용하는 경우 |
BatchConsumerAwareMessageListener | onMessage(ConsumerRecords<K, V> data, Consumer<K, V> consumer) onMessage(List<V> data, Consumer<K, V> consumer) |
컨슈머 객체를 활용하고 싶은 경우 |
BatchAcknowledgingConsumerAwareMessageListener | onMessage(ConsumerRecords<K, V> data, Acknowledgment acknowledgment, Consumer<K, V> consumer) onMessage(List<V> data, Acknowledgment acknowledgment, Consumer<K, V> consumer) |
매뉴얼 커밋을 사용하고 컨슈머 객체를 활용하고 싶은 경우 |
'Kafka' 카테고리의 다른 글
[Kafka] Listener 기본 설정 (6) (0) | 2024.07.26 |
---|---|
[Kafka] commit 이해하기 (4) (0) | 2024.07.17 |
[Kafka] Partition & Replication (3) (1) | 2024.07.12 |
[Kafka] kafka 내부 구조 (2) (0) | 2024.07.12 |
[Kafka] 탄생 배경 (1) (0) | 2024.07.08 |