此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 Spring for Apache Kafka 3.3.9spring-doc.cadn.net.cn

什么是新的?

4.0 自 3.3 以来的新增功能

本节介绍从 3.3 版到 4.0 版所做的更改。 有关早期版本中的更改,请参阅更改历史记录spring-doc.cadn.net.cn

Apache Kafka 4.0 客户端升级

Spring for Apache Kafka 已升级为使用 Apache Kafka 客户端版本4.0.0. 此次升级带来了几个重要的变化:spring-doc.cadn.net.cn

嵌入式 Kafka 测试框架更改

测试基础设施已大幅更新:spring-doc.cadn.net.cn

ConsumerRecords 构造函数更改

ConsumerRecords构造函数现在需要额外的Map参数,该参数已在整个框架中得到解决。 直接使用此构造函数的应用程序需要更新其代码。spring-doc.cadn.net.cn

生产者界面更新

已实现 Kafka Producer 接口中的新方法:spring-doc.cadn.net.cn

已删除已弃用的功能

已删除几个已弃用的项目:spring-doc.cadn.net.cn

Kafka Streams API 更改

  • KafkaStreamBrancher已更新为使用新的split()branch()方法而不是已弃用的branch()方法spring-doc.cadn.net.cn

  • DeserializationExceptionHandler已更新为使用新的ErrorHandlerContextspring-doc.cadn.net.cn

Apache Kafka 4.0.0 相关的内部 API 更新

  • BrokerAddress类现在使用org.apache.kafka.server.network.BrokerEndPoint而不是已弃用的kafka.cluster.BrokerEndPointspring-doc.cadn.net.cn

  • GlobalEmbeddedKafkaTestExecutionListener已更新为仅适用于 KRaft 模式spring-doc.cadn.net.cn

新的消费者再平衡协议

Spring for Apache Kafka 4.0 支持 Kafka 4.0 的新消费者再平衡协议 - KIP-848。 有关详细信息,请参阅新的消费者再平衡协议文档spring-doc.cadn.net.cn

支持多值标头

JsonKafkaHeaderMapperSimpleKafkaHeaderMapper支持 Kafka 记录的多值头映射。 更多详细信息,请参阅支持多值标头映射spring-doc.cadn.net.cn

配置其他RecordInterceptor

侦听器容器现在支持通过以下方式自定义拦截器getRecordInterceptor(). 有关详细信息,请参阅消息侦听器容器部分。spring-doc.cadn.net.cn

批量侦听器中的每条记录观察

现在,使用批处理侦听器时,可以获取每条记录的观察结果。 有关更多信息,请参阅批处理侦听器的可观测性spring-doc.cadn.net.cn

Kafka 队列(共享消费者)支持

Spring for Apache Kafka 现在通过共享消费者为 Kafka 队列提供早期访问支持,共享消费者是 Apache Kafka 4.0.0 的一部分并实现了 KIP-932。 这使得多个消费者可以同时从同一分区消费的协作消费成为可能,与传统消费者组相比,提供更好的负载分配。 有关更多信息,请参阅 Kafka 队列(共享消费者)。spring-doc.cadn.net.cn

Jackson 3 支持

Spring for Apache Kafka 现在除了现有的 Jackson 2 支持外,还提供了对 Jackson 3 的全面支持。 Jackson 3 会自动检测并在可用时进行首选,从而提供增强的性能和现代 JSON 处理功能。spring-doc.cadn.net.cn

所有Jackson 2 级现在都有Jackson 3 级,具有一致的命名和改进的类型安全性:spring-doc.cadn.net.cn

新的Jackson 3 类使用JsonMapper而不是通用ObjectMapper以增强类型安全性,并利用Jackson 3 改进的模块系统和性能优化。spring-doc.cadn.net.cn

迁移路径:现有应用程序在 Jackson 2 中继续保持不变。 要迁移到 Jackson 3,只需将 Jackson 3 添加到您的类路径中并更新类引用以使用新的 Jackson 3 等效项。 当两个版本都存在时,框架会自动检测并首选 Jackson 3。spring-doc.cadn.net.cn

向后兼容性:所有 Jackson 2 类均已弃用,但仍能正常运行。 它们将在将来的主要版本中被删除。spring-doc.cadn.net.cn

有关配置示例,请参阅序列化、反序列化和消息转换spring-doc.cadn.net.cn