对于最新稳定版本,请使用Spring for Apache Kafka 4.0.4spring-doc.cadn.net.cn

什么是新内容?

自 3.1 版本以来的新功能

此部分概述了从版本 3.0 到版本 3.1 的更改。 较早版本的变更,请参阅 变更历史记录spring-doc.cadn.net.cn

Kafka 客户端版本

此版本需要 3.6.0 kafka-clientsspring-doc.cadn.net.cn

嵌入式Kafka Brokers

现在提供了一个额外的实现,可以使用Kraft而不是Zookeeper。 更多信息请参见嵌入式Kafka代理spring-doc.cadn.net.cn

JsonDeserializer

当反序列化异常发生时,SerializationException消息不再包含具有形式Can’t deserialize data [[123, 34, 98, 97, 122, …​的数据;每个数据字节的数值数组对于大数据来说可能没有用且很冗长。 使用ErrorHandlingDeserializer时,DeserializationException发送给错误处理程序包含data属性,该属性包含无法反序列化的原始数据。 如果不使用ErrorHandlingDeserializerKafkaConsumer将继续为同一记录发出异常,显示主题/分区/偏移量以及由Jackson抛出的错误原因。spring-doc.cadn.net.cn

ContainerPostProcessor

post processing 可以通过在 @KafkaListener 注解中指定一个 ContainerPostProcessor 的 bean 名称来应用到监听器容器上。这发生在容器创建之后,并且在容器工厂中配置的任何 ContainerCustomizer 都已经配置好之后。 更多详细信息,请参阅 容器工厂spring-doc.cadn.net.cn

错误处理反序列化器

您现在可以在这个反序列化器中添加一个Validator; 如果代理Deserializer成功地反序列化了对象,但该对象验证失败,则会抛出类似反序列化异常的错误。 这使得原始数据能够传递给错误处理器。参见使用ErrorHandlingDeserializer获取更多信息。spring-doc.cadn.net.cn

重试主题

将后缀-retry-5000改为-retry时,请在@RetryableTopic(backoff = @Backoff(delay = 5000), attempts = "2", fixedDelayTopicStrategy = FixedDelayStrategy.SINGLE_TOPIC)处操作。 若要保持后缀-retry-5000,请使用@RetryableTopic(backoff = @Backoff(delay = 5000), attempts = "2")。 更多信息请参见主题命名spring-doc.cadn.net.cn

监听器容器变更

当手动分配分区时,使用一个null消费者group.id,现在的AckMode会自动转换为MANUAL。 有关更多信息,请参阅手动分配所有分区spring-doc.cadn.net.cn