2. 新增功能
2.1. 自 2.7 以来 2.8 中的新增功能
本节介绍从版本 2.7 到版本 2.8 所做的更改。 有关早期版本的更改,请参阅更改历史记录。
2.1.1. Kafka 客户端版本
此版本需要 3.0.1kafka-clients
使用事务时,3.0.0 及更高版本不再支持 (aka ) (并自动回退到 - aka ) 与 2.5 之前的代理;因此,如果您的经纪人较旧(或升级您的经纪人),则必须覆盖默认的 () 。kafka-clients EOSMode.V2 BETA V1 ALPHA EOSMode V2 V1 |
有关更多信息,请参阅 Exactly Once 语义和 KIP-447。
2.1.2. 软件包更改
与类型映射相关的类和接口已从 移动到 。…support.converter
…support.mapping
-
AbstractJavaTypeMapper
-
ClassMapper
-
DefaultJackson2JavaTypeMapper
-
Jackson2JavaTypeMapper
2.1.3. 无序手动提交
现在可以将侦听器容器配置为接受不按顺序(通常是异步)的手动偏移提交。 容器将延迟提交,直到确认缺少的偏移量。 有关更多信息,请参阅手动提交偏移量。
2.1.4. 更改@KafkaListener
现在可以指定侦听器方法是否是方法本身的批处理侦听器。 这允许将同一容器工厂用于记录侦听器和批处理侦听器。
有关更多信息,请参阅 Batch Listeners 。
批处理侦听器现在可以处理转换异常。
有关更多信息,请参阅使用批处理错误处理程序的转换错误。
RecordFilterStrategy
与批处理侦听器一起使用时,现在可以在一次调用中筛选整个批处理。
有关更多信息,请参阅 Batch Listeners 末尾的注释。
注解现在具有属性,用于仅覆盖此侦听器的容器工厂。@KafkaListener
filter
RecordFilterStrategy
注释现在具有 attribute;这用于填充 New Listener Container 属性 。
然后,这用于填充每条记录中的标题,该标题可以在 、 或侦听器本身中使用。
有关更多信息,请参阅 Listener Info Header 和 Abstract Listener Container Properties 。@KafkaListener
info
listenerInfo
KafkaHeaders.LISTENER_INFO
RecordInterceptor
RecordFilterStrategy
2.1.5. 更改KafkaTemplate
您现在可以接收给定主题、分区和偏移量的单个记录。
有关更多信息,请参阅使用 KafkaTemplate
接收。
2.1.6. 已添加CommonErrorHandler
用于记录批处理侦听器的 legacy 及其子接口层次结构已替换为新的单个接口,其实现对应于 的大多数 legacy 实现。
有关更多信息,请参阅容器错误处理程序和将自定义旧版错误处理程序实现迁移到 CommonErrorHandler
。GenericErrorHandler
CommonErrorHandler
GenericErrorHandler
2.1.7. 侦听器容器更改
container 属性现在是默认的。interceptBeforeTx
true
该属性已重命名为 s,现在除了以前的 s 之外,还应用于 s。
这两个异常都被视为致命的,除非设置了此属性,否则容器将默认停止。authorizationExceptionRetryInterval
authExceptionRetryInterval
AuthenticationException
AuthorizationException
有关更多信息,请参阅使用 KafkaMessageListenerContainer
和 Listener Container 属性。
2.1.8. Serializer/Deserializer 更改
现在提供了 和。
有关更多信息,请参见Delegating Serializer 和 Deserializer。DelegatingByTopicSerializer
DelegatingByTopicDeserializer
2.1.9. 更改DeadLetterPublishingRecover
该属性现在是默认的。stripPreviousExceptionHeaders
true
现在有几种技术可以自定义将哪些标头添加到输出记录中。
有关更多信息,请参阅 管理死信记录标头 。
2.1.10. 可重试主题更改
现在,您可以对可重试和不可重试的主题使用相同的工厂。 有关更多信息,请参阅指定 ListenerContainerFactory。
现在有一个可管理的致命异常全局列表,这些异常将使失败的记录直接进入 DLT。 请参阅 Exception Classifier 以了解如何管理它。
现在,您可以结合使用阻塞和非阻塞重试。 有关更多信息,请参阅组合阻塞和非阻塞重试。
使用可重试主题功能时引发的 KafkaBackOffException 现在记录在 DEBUG 级别。 如果您需要将日志记录级别更改回 WARN 或将其设置为任何其他级别,请参阅更改 KafkaBackOffException 日志记录级别。