2. 新增功能
2.1. 自 2.8 以来 2.9 中的新增功能
本节介绍从版本 2.8 到版本 2.9 所做的更改。 有关早期版本的更改,请参阅更改历史记录。
2.1.2. 错误处理程序更改
这DefaultErrorHandler
现在可以配置为暂停容器进行一次轮询,并使用上一次轮询的剩余结果,而不是查找剩余记录的偏移量。
有关更多信息,请参阅 DefaultErrorHandler。
这DefaultErrorHandler
现在有一个BackOffHandler
财产。
有关更多信息,请参见 Back Off Handlers。
2.1.3. 侦听器容器更改
interceptBeforeTx
现在适用于所有事务管理器(以前,它仅在KafkaAwareTransactionManager
被使用)。
参见 [interceptBeforeTx]。
新的 container 属性pauseImmediate
,这允许容器在处理当前记录后暂停使用者,而不是在处理完上一次轮询中的所有记录之后。
请参阅 [pauseImmediate]。
与消费者身份验证和授权相关的事件
2.1.4. Header Mapper 更改
您现在可以配置应映射的入站标头。 在版本 2.8.8 或更高版本中也可用。 有关更多信息,请参阅 Message Headers 。
2.1.5.KafkaTemplate
变化
在 3.0 中,该类返回的 future 将为CompletableFuture
s 而不是ListenableFuture
s.
看用KafkaTemplate
有关使用此版本时进行过渡的帮助。
2.1.6.ReplyingKafkaTemplate
变化
该模板现在提供了一种在回复容器上等待分配的方法,以避免在初始化回复容器之前发送请求时发生争用。
在版本 2.8.8 或更高版本中也可用。
看用ReplyingKafkaTemplate
.
在 3.0 中,该类返回的 future 将为CompletableFuture
s 而不是ListenableFuture
s.
看用ReplyingKafkaTemplate
和请求/回复Message<?>
s有关使用此版本时进行过渡的帮助。
2.2. JsonDeserializer(自 2.9.13 起)
当反序列化异常发生时,SerializationException
message 不再包含格式为Can’t deserialize data [[123, 34, 98, 97, 122, …
;每个数据字节的数值数组没有用,对于大数据来说可能很详细。
当与ErrorHandlingDeserializer
这DeserializationException
sent to 错误处理程序包含data
属性,其中包含无法反序列化的原始数据。
当不与ErrorHandlingDeserializer
这KafkaConsumer
将持续为同一记录发出异常,显示 topic/partition/offset 和 Jackson 抛出的原因。