iv0版本后缀是什么意思?

6jjcrrmo  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(441)

我们在三节点azure集群中部署了apachekafka 0.10.2.0。我们没有具体说明 log.message.format.version 中的选项 server.properties 所以我们希望它应该是Kafka版本(即。 0.10.2.0 ).
但当我们尝试表演Kafka时,我们注意到 log.message.format.version=0.10.2.0-IV0 在服务器日志中。
根据Kafka升级指南 log.message.format.version 总是与Kafka版本本身完全相同(如果不是被 server.properties 当然是配置)。
这是什么意思 -IV0 版本号后缀是什么意思?
为什么? log.message.format.version 默认值与Kafka版本不同?

mznpcxlj

mznpcxlj1#

基本上, IV0 , IV1 , IV2 etc.是Kafka版本中的协议版本。一个特定的Kafka版本在开发过程中可以有多个协议更改。
由于api协议在同一版本中可能会更改多次,并且为了方便人们从trunk部署代码,我们有了内部版本的概念(首次在0.10.0开发周期中引入)。例如,我们第一次在版本中引入版本更改,比如0.10.0,我们将添加一个配置值“0.10.0-iv0”和一个相应的case对象kafka\u 0\u 10\u 0-iv0。我们还将添加一个配置值“0.10.0”,它将Map到最新的内部版本对象,即kafka\u 0\u 10\u 0-iv0。当我们在开发0.10.0时再次更改协议时,我们将添加一个新的配置值“0.10.0-iv1”和一个相应的case对象kafka\u 0\u 10\u 0-iv1。我们将更改配置值“0.10.0”以Map到最新的内部版本对象kafka\u 0\u 10\u 0-iv1。“0.10.0-iv0”的配置值仍然Map到kafka\u 0\u 10\u 0-iv0。这样,如果人们从 Backbone.js 部署,他们可以使用“0.10.0-iv0”和“0.10.0-iv1”一次升级一个内部版本。对于大多数只想使用发布版本的人来说,升级到0.10.0版本时可以使用“0.10.0”。
(来自Kafka源代码:https://github.com/apache/kafka/blob/c216adb4bbf8306977380a1ec371380e30137765/core/src/main/scala/kafka/api/apiversion.scala#l30)

相关问题