17.3. Kafka 版本
Kafka 的日志消息格式版本和 Inter-broker 协议版本分别指定附加到消息的日志格式版本以及集群中使用的 Kafka 协议版本。为确保使用正确的版本,升级过程包括对现有 Kafka 代理进行配置更改,以及对客户端应用程序(使用者和生产者)的代码更改。
下表显示了 Kafka 版本之间的区别:
Kafka 版本 | Interbroker 协议版本 | 日志消息格式版本 | zookeeper 版本 |
---|---|---|---|
2.8.0 | 2.8 | 2.8 | 3.5.9 |
2.7.0 | 2.7 | 2.7 | 3.5.8 |
Broker 协议版本
在 Kafka 中,用于代理间通信的网络协议称为 代理间协议。每个版本的 Kafka 都有兼容版本的 Inter-broker 协议。协议的次要版本通常会增加以匹配 Kafka 的次要版本,如上表所示。
broker 协议版本在 Kafka
资源中广泛设置集群。要更改它,请编辑 Kafka.spec.kafka.config
中的 inter.broker.protocol.version
属性。
日志消息格式版本
当生产者向 Kafka 代理发送消息时,该消息将使用特定格式进行编码。Kafka 版本的格式可能会在 Kafka 发行版本间有所变化,因此信息会指定它们编码的格式版本。您可以配置 Kafka 代理,在代理将消息附加到日志前将信息从较新的格式转换为给定的旧格式版本。
在 Kafka 中,设置消息格式版本的方法有两种:
-
message.format.version
属性在主题上设置。 -
log.message.format.version
属性在 Kafka 代理上设置。
一个主题的 message.format.version
的默认值由 Kafka 代理上设置的 log.message.format.version
定义。您可以通过修改主题配置来手动设置主题 message.format.version
。
本节中的升级任务假定消息格式版本由 log.message.format.version
定义。