此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring for Apache Kafka 3.3.0! |
新增功能
自 3.2 以来 3.3 中的新增功能
本节介绍从版本 3.2 到版本 3.3 所做的更改。 有关早期版本的更改,请参阅更改历史记录。
DLT 主题命名约定
DLT 主题的命名约定已标准化,以始终使用“-dlt”后缀。此更改可确保兼容性,并避免在不同重试解决方案之间转换时发生冲突。希望保留 “.DLT“后缀行为需要通过设置适当的 DLT name 属性来显式选择加入。
使用者组的增强查找作
一种新方法getGroupId()
已添加到ConsumerSeekCallback
接口。
此方法通过仅针对所需的使用者组来允许进行更具选择性的查找作。
这AbstractConsumerSeekAware
现在还可以在多组侦听器场景中注册、检索和删除每个主题分区的所有回调,而不会丢失任何回调。
请参阅新的 API (getSeekCallbacksFor(TopicPartition topicPartition)
,getTopicsAndCallbacks()
) 了解更多详情。
有关更多详细信息,请参阅 Seek API 文档。
使用 RecordFilterStrategy 在 Kafka Listener 中配置空批处理
RecordFilterStrategy
现在支持忽略筛选产生的空批处理。
这可以通过覆盖默认方法来配置ignoreEmptyBatch()
,默认为 false,确保KafkaListener
即使所有ConsumerRecords
被过滤掉。
有关更多详细信息,请参阅 消息接收过滤 文档。
ConcurrentContainerStoppedEvent 事件
这ConcurentContainerMessageListenerContainer
现在发出一个ConcurrentContainerStoppedEvent
当其所有子容器都停止时。
有关更多详细信息,请参阅应用程序事件和ConcurrentContainerStoppedEvent
Javadocs 的 Java 文档。
回复中的原始记录键
使用ReplyingKafkaTemplate
,如果请求中的原始记录包含键,则该键也将成为回复的一部分。
有关更多详细信息,请参阅参考文档的发送消息部分。
在 DeadLetterPublishingRecovererFactory 中自定义日志记录
使用DeadLetterPublishingRecovererFactory
,User Applications 可以覆盖maybeLogListenerException
方法来自定义日志记录行为。
KafkaHeaders.DELIVERY_ATTEMPT 用于批处理侦听器
当使用BatchListener
这ConsumerRecord
可以具有KafkaHeaders.DELIVERY_ATTMPT
header 字段。
如果DeliveryAttemptAwareRetryListener
设置为 Error Handler 作为重试侦听器,则每个ConsumerRecord
具有 Delivery Attempt 标头。
有关更多详细信息,请参阅适用于 Batch Listener 的 Kafka 标头。
Kafka Metrics Listeners 和TaskScheduler
这MicrometerProducerListener
,MicrometerConsumerListener
和KafkaStreamsMicrometerListener
现在可以使用TaskScheduler
.
看KafkaMetricsSupport
JavaDocs 和 Micrometer 支持以了解更多信息。