Kafka
[Kafka] Spring Kafka commit (5)
화한 생명
2024. 7. 17. 18:23
리스너 타입
- 레코드 리스너(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) |
매뉴얼 커밋을 사용하고 컨슈머 객체를 활용하고 싶은 경우 |