|
对于最新稳定版本,请使用Spring for Apache Kafka 4.0.4! |
什么是新内容?
最新更新 in 3.3 自 3.2 起
本部分涵盖从版本3.2到版本3.3的更改。 更早版本的更改请参见 变更历史。
DLT 主题命名约定
DLT主题的命名约定已标准化为始终使用"-dlt"后缀。此更改确保了兼容性,并在在不同重试解决方案之间进行转换时避免冲突。希望保留".DLT"后缀行为的用户需要通过设置适当的DLT名称属性显式选择。
增强消费者组的查找操作
新增了一个方法,getGroupId(),已添加到ConsumerSeekCallback接口中。
该方法通过针对仅需的消费组,实现了更选择性的seek操作。
AbstractConsumerSeekAware现在也可以在多组监听器场景下,为每个主题分区注册、检索和移除所有回调,而不会遗漏任何。
了解更多详情,请查看新的API(getSeekCallbacksFor(TopicPartition topicPartition), getTopicsAndCallbacks())。
更多信息,请查看Seek API文档。
可配置处理Kafka监听器中的空批次(使用RecordFilterStrategy)
RecordFilterStrategy 现在支持忽略由过滤操作产生的空批次。
这可以通过重写默认方法 ignoreEmptyBatch() 配置,该方法默认为 false,确保即使所有 ConsumerRecords 被过滤掉,KafkaListener 也会被调用。
了解更多详情,请参阅 消息接收过滤文档。
并发容器停止事件
The ConcurentContainerMessageListenerContainer 现在在所有子容器停止时发出一个 ConcurrentContainerStoppedEvent。
了解更多详情,请参见 Application Events 和 ConcurrentContainerStoppedEvent Javadocs。
原始回复记录键
当使用 ReplyingKafkaTemplate 时,如果请求中的原始记录包含一个键,那么回复中也会包含该相同键。
更多信息,请参见参考文档中 发送消息 部分。
定制 DeadLetterPublishingRecovererFactory 的日志记录
当使用 DeadLetterPublishingRecovererFactory 时,用户应用程序可以重写 maybeLogListenerException 方法以自定义日志记录行为。
定制 Kafka Streams 的实现
当使用 KafkaStreamsCustomizer 时,现在可以通过重写 initKafkaStreams 方法返回 KafkaStreams 接口的自定义实现。
KafkaHeaders.DELIVERY_ATTEMPT 对于批处理监听器
当使用一个 BatchListener 时,ConsumerRecord 的 headers 字段可以包含 KafkaHeaders.DELIVERY_ATTMPT 头部。
如果将 DeliveryAttemptAwareRetryListener 设置为错误处理程序作为重试监听器,每个 ConsumerRecord 都会包含 delivery attempt 头部。
更多详情,请参见 批量监听器的 Kafka 头部。
Kafka 指标监听器和TaskScheduler
The MicrometerProducerListener, MicrometerConsumerListener and KafkaStreamsMicrometerListener 现在可以使用 TaskScheduler 配置。
参见 KafkaMetricsSupport JavaDocs 和 Micrometer 支持 以获取更多信息。