对于最新的稳定版本,请使用 Spring for Apache Kafka 3.3.0! |
新增功能
自 3.0 以来 3.1 中的新增功能
本节介绍从版本 3.0 到版本 3.1 所做的更改。 有关早期版本的更改,请参阅更改历史记录。
嵌入 KafkaBroker
现在提供了一个额外的实现供使用Kraft
而不是 Zookeeper。
有关更多信息,请参阅嵌入式 Kafka 代理。
JsonDeserializer
当反序列化异常发生时,SerializationException
message 不再包含格式为Can’t deserialize data [[123, 34, 98, 97, 122, …
;每个数据字节的数值数组没有用,对于大数据来说可能很详细。
当与ErrorHandlingDeserializer
这DeserializationException
sent to 错误处理程序包含data
属性,其中包含无法反序列化的原始数据。
当不与ErrorHandlingDeserializer
这KafkaConsumer
将持续为同一记录发出异常,显示 topic/partition/offset 和 Jackson 抛出的原因。
容器后处理器
通过指定ContainerPostProcessor
在@KafkaListener
注解。
这发生在创建容器之后以及任何配置的ContainerCustomizer
在 Container Factory 上配置。
有关更多信息,请参阅 Container Factory。
ErrorHandlingDeserializer
您现在可以添加Validator
到这个反序列化器;如果委托的Deserializer
成功反序列化对象,但该对象未通过验证,则会引发异常,类似于发生的反序列化异常。
这允许将原始原始数据传递给错误处理程序。
看用ErrorHandlingDeserializer
了解更多信息。
可重试主题
更改后缀-retry-5000
自-retry
什么时候@RetryableTopic(backoff = @Backoff(delay = 5000), attempts = "2", fixedDelayTopicStrategy = FixedDelayStrategy.SINGLE_TOPIC)
.
如果要保留后缀-retry-5000
用@RetryableTopic(backoff = @Backoff(delay = 5000), attempts = "2")
.
有关更多信息,请参阅主题命名。
侦听器容器更改
手动分配分区时,使用null
消费者group.id
这AckMode
现在会自动强制为MANUAL
.
有关更多信息,请参阅 手动分配所有分区 。