2. 有什么新功能?
2.1. 2.8 自 2.7 以来的新功能
本节介绍从 2.7 版到 2.8 版所做的更改。有关早期版本中的更改,请参阅更改历史记录。
2.1.1. Kafka 客户端版本
此版本需要 3.0.1kafka-clients
使用事务时,kafka-clients 3.0.0 及更高版本不再支持EOSMode.V2 (又名BETA )(并自动回退到V1 -即ALPHA ) 与早于 2.5 的代理;因此,您必须覆盖默认值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
变化
现在可以指定侦听器方法是否是方法本身的批处理侦听器。这允许将同一个容器工厂用于记录侦听器和批处理侦听器。
有关更多信息,请参阅批处理侦听器。
批处理侦听器现在可以处理转换异常。
有关详细信息,请参阅使用批处理错误处理程序的转换错误。
RecordFilterStrategy
,当与批处理侦听器一起使用时,现在可以在一次调用中过滤整个批处理。有关更多信息,请参阅批处理侦听器末尾的注释。
这@KafkaListener
注释现在具有filter
属性,以覆盖容器工厂的RecordFilterStrategy
只为这个听众。
2.1.5.KafkaTemplate
变化
您现在可以接收一条记录,给定主题、分区和偏移量。 看用KafkaTemplate
接收了解更多信息。
2.1.6.CommonErrorHandler
添加
遗产GenericErrorHandler
及其用于记录批处理侦听器的子接口层次结构已被新的单个接口所取代CommonErrorHandler
与大多数旧版实现相对应的实现GenericErrorHandler
. 请参阅容器错误处理程序和将自定义旧版错误处理程序实现迁移到CommonErrorHandler
了解更多信息。
2.1.7. 侦听器容器更改
这interceptBeforeTx
container 属性现在是true
默认情况下。
这authorizationExceptionRetryInterval
属性已重命名为authExceptionRetryInterval
现在适用于AuthenticationException
s 除了AuthorizationException
s 之前。这两个异常都被视为致命异常,除非设置了此属性,否则容器将默认停止。
看用KafkaMessageListenerContainer
和侦听器容器属性以获取更多信息。
2.1.8. 序列化器/解序列化器更改
这DelegatingByTopicSerializer
和DelegatingByTopicDeserializer
现在提供了。
有关详细信息,请参阅委托序列化器和反序列化器。
2.1.9.DeadLetterPublishingRecover
变化
该物业stripPreviousExceptionHeaders
现在true
默认情况下。
现在有几种技术可以自定义将哪些标头添加到输出记录中。
有关详细信息,请参阅管理死信记录标题。
2.1.10. 可重试主题更改
现在,可以将同一工厂用于可重试和不可重试的主题。 有关更多信息,请参阅指定 ListenerContainerFactory。
现在有一个可管理的致命异常全球列表,这些异常将使失败的记录直接进入 DLT。 请参阅异常分类器以了解如何管理它。
您现在可以结合使用阻止和非阻止重试。 有关详细信息,请参阅组合阻塞和非阻塞重试。
使用可重试主题功能时抛出的 KafkaBackOffException 现在记录在 DEBUG 级别。 如果您需要将日志记录级别更改回 WARN 或将其设置为任何其他级别,请参阅更改 KafkaBackOffException 日志记录级别。