17.2. Kafka 版本
Kafka 的日志消息格式版本和 Inter-broker 协议版本分别指定,附加到消息的日志格式版本以及集群中使用的 Kafka 协议的版本。为确保使用了正确的版本,升级过程涉及对现有 Kafka 代理和客户端应用程序(使用者和生产者)进行配置更改。
下表显示了 Kafka 版本之间的区别:
Kafka 版本 | 代理协议版本 | 日志消息格式版本 | zookeeper 版本 |
---|---|---|---|
3.2.0 | 3.2 | 3.2 | 3.6.3 |
3.2.1 | 3.2 | 3.2 | 3.6.3 |
3.2.3 | 3.2 | 3.2 | 3.6.3 |
3.3.1 | 3.3 | 3.3 | 3.6.3 |
代理协议版本
在 Kafka 中,用于内部代理通信的网络协议被称为 broker 间的协议。Kafka 的每个版本都有了一个内部代理协议的兼容版本。协议的次要版本通常会增加,以匹配 Kafka 的次版本,如上表所示。
在 Kafka
资源中设置了 cluster-broker 协议版本。要改变它,您需要编辑 Kafka.spec.kafka.config
中的 inter.broker.protocol.version
属性。
日志消息格式版本
当制作者向 Kafka 代理发送消息时,该消息采用特定的格式进行编码。在 Kafka 发行版本之间可能会改变格式,因此信息会指定使用哪个消息格式进行编码。
用于设置特定消息格式版本的属性如下:
-
主题的
message.format.version
属性 -
Kafka 代理的
log.message.format.version
属性
从 Kafka 3.0.0,消息格式版本值被假定为与 inter.broker.protocol.version
匹配,且不需要设置。值反映了使用的 Kafka 版本。
当升级到 Kafka 3.0.0 或更高版本时,您可以在更新 inter.broker.protocol.version
时删除这些设置。否则,根据您要升级到的 Kafka 版本设置消息格式版本。
由在 Kafka 代理中设置的 log.message.format.version
定义的 message.format.version
的默认值。您可以通过修改其主题配置来手动设置主题的 message.format.version
。