对于最新的稳定版本,请使用 Spring for Apache Kafka 3.3.0! |
筛选消息
Spring for Apache Kafka 项目还通过FilteringMessageListenerAdapter
类,它可以包装您的MessageListener
.
此类采用RecordFilterStrategy
其中,您可以实现filter
方法来表示消息是重复的,应该被丢弃。
这有一个名为ackDiscarded
,它指示适配器是否应确认丢弃的记录。
是的false
默认情况下。
当您使用@KafkaListener
中,将RecordFilterStrategy
(并且可选ackDiscarded
),以便将侦听器包装在适当的筛选适配器中。
此外,一个FilteringBatchMessageListenerAdapter
,用于使用批处理消息侦听器。
这FilteringBatchMessageListenerAdapter 如果您的@KafkaListener 接收一个ConsumerRecords<?, ?> 而不是List<ConsumerRecord<?, ?>> 因为ConsumerRecords 是不可变的。 |
从版本 2.8.4 开始,您可以覆盖侦听器容器工厂的默认值RecordFilterStrategy
通过使用filter
Listener 注解的属性。
@KafkaListener(id = "filtered", topics = "topic", filter = "differentFilter")
public void listen(Thing thing) {
...
}