此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 Spring for Apache Kafka 3.3.9spring-doc.cadn.net.cn

什么是新的?

自 3.2 以来 3.3 的新增功能

本节介绍从 3.2 版到 3.3 版所做的更改。有关早期版本的更改,请参阅更改历史记录spring-doc.cadn.net.cn

DLT 主题命名约定

DLT 主题的命名约定已标准化,可一致地使用“-dlt”后缀。此更改可确保兼容性,并避免在不同重试解决方案之间转换时发生冲突。希望保留“.DLT”后缀行为的用户需要通过设置适当的 DLT 名称属性来显式选择加入。spring-doc.cadn.net.cn

增强消费者群体的 Seek作

一种新方法getGroupId(),已添加到ConsumerSeekCallback接口。 此方法允许通过仅针对所需的使用者组来进行更具选择性的查找作。 这AbstractConsumerSeekAware现在还可以在多组侦听器方案中注册、检索和删除每个主题分区的所有回调,而不会遗漏任何回调。请参阅新的 API (getSeekCallbacksFor(TopicPartition topicPartition),getTopicsAndCallbacks())了解更多详情。有关更多详细信息,请参阅 Seek API 文档spring-doc.cadn.net.cn

使用 RecordFilterStrategy 在 Kafka 侦听器中可配置地处理空批次

RecordFilterStrategy现在支持忽略过滤产生的空批次。这可以通过覆盖默认方法进行配置ignoreEmptyBatch(),默认为 false,确保KafkaListener即使所有ConsumerRecords被过滤掉。有关更多详细信息,请参阅消息接收过滤文档spring-doc.cadn.net.cn

ConcurrentContainerStoppedEvent

ConcurentContainerMessageListenerContainer现在发出一个ConcurrentContainerStoppedEvent当其所有子容器都停止时。有关更多详细信息,请参阅应用程序事件和ConcurrentContainerStoppedEventJavadocs。spring-doc.cadn.net.cn

原始记录密钥回复

使用时ReplyingKafkaTemplate,如果请求中的原始记录包含键,则该键也将成为回复的一部分。有关更多详细信息,请参阅参考文档的发送消息部分。spring-doc.cadn.net.cn

在 DeadLetterPublishingRecovererFactory 中自定义日志记录

使用时DeadLetterPublishingRecovererFactory,则用户应用程序可以覆盖maybeLogListenerException方法来自定义日志记录行为。spring-doc.cadn.net.cn

在 KafkaAdmin 中自定义管理客户端

扩展时KafkaAdmin,用户应用程序可能会覆盖createAdmin自定义管理员客户端创建的方法。spring-doc.cadn.net.cn

自定义 Kafka 流的实现

使用时KafkaStreamsCustomizer现在可以返回KafkaStreams对象通过覆盖initKafkaStreams方法。spring-doc.cadn.net.cn

批量侦听器的KafkaHeaders.DELIVERY_ATTEMPT

使用BatchListenerConsumerRecord可以有KafkaHeaders.DELIVERY_ATTMPTheader 在其 headers 字段中。如果DeliveryAttemptAwareRetryListener设置为错误处理程序作为重试侦听器,每个ConsumerRecordhas delivery attempt 标头。有关更多详细信息,请参阅 Batch Listener 的 Kafka 标头spring-doc.cadn.net.cn

Kafka 指标侦听器和TaskScheduler

MicrometerProducerListener,MicrometerConsumerListenerKafkaStreamsMicrometerListener现在可以使用TaskScheduler. 看KafkaMetricsSupportJavaDocs 和 Micrometer 支持了解更多信息。spring-doc.cadn.net.cn