此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring for Apache Kafka 3.3.5! |
新增功能
自 3.3 以来 4.0 中的新增功能
本节介绍从版本 3.3 到版本 4.0 所做的更改。 有关早期版本中的更改,请参阅更改历史记录。
Apache Kafka 4.0 客户端升级
Spring for Apache Kafka 已升级为使用 Apache Kafka 客户端版本4.0.0
.
此次升级带来了几个重要的变化:
-
随着 Kafka 4.0 完全过渡到 KRaft 模式,所有基于 ZooKeeper 的功能都已被删除
-
ZooKeeper 依赖项已从项目中删除
-
嵌入式 Kafka 测试框架现在只使用 KRaft 模式
-
这
EmbeddedKafkaZKBroker
类已被删除,所有功能现在都由EmbeddedKafkaKraftBroker
嵌入式 Kafka 测试框架更改
测试基础设施已显著更新:
-
这
EmbeddedKafkaRule
已删除 JUnit 4 规则 -
这
@EmbeddedKafka
注释已通过删除 ZooKeeper 相关属性进行了简化: -
这
kraft
属性已被删除,因为 KRaft 模式现在是唯一的选项 -
特定于 ZooKeeper 的属性,如
zookeeperPort
,zkConnectionTimeout
和zkSessionTimeout
已被删除 -
KafkaClusterTestKit 导入现在为 KRaft 模式使用新包
-
一些测试已更新,以解决 KRaft 模式下静态端口分配的限制
-
对测试中的复制因子进行了调整,以适应 KRaft 要求
已删除的已弃用功能
已删除几个已弃用的项目:
-
已弃用的
partitioner
已从运行时提示中删除类 -
已弃用的
sendOffsetsToTransaction
方法String consumerGroupId
已被删除
Kafka Streams API 更改
-
KafkaStreamBrancher
已更新为使用新的split()
和branch()
方法而不是已弃用的branch()
方法 -
这
DeserializationExceptionHandler
已更新为使用新的ErrorHandlerContext
与 Apache Kafka 4.0.0 相关的内部 API 更新
-
这
BrokerAddress
类现在使用org.apache.kafka.server.network.BrokerEndPoint
而不是已弃用的kafka.cluster.BrokerEndPoint
-
这
GlobalEmbeddedKafkaTestExecutionListener
已更新为仅适用于 KRaft 模式
新的消费者再平衡协议
Spring for Apache Kafka 4.0 支持 Kafka 4.0 的新消费者再平衡协议 - KIP-848。 有关详细信息,请参阅 New Consumer Rebalace Protocol 文档。
支持多值标头
这DefaultKafkaHeaderMapper
和SimpleKafkaHeaderMapper
支持 Kafka 记录的多值 Header 映射。
有关更多详细信息,请参阅支持多值标头映射。