-IV0版本后缀是什么意思?

时间:2017-10-23 09:53:44

标签: apache-kafka

我们在三节点Azure群集中部署了Apache Kafka 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 upgrade guide 似乎 log.message.format.version总是与Kafka版本本身完全相同(如果没有被{{1}覆盖配置,当然)。

  1. server.properties版本号后缀是什么意思?
  2. 为什么-IV0默认值与Kafka版本不同?

1 个答案:

答案 0 :(得分:2)

基本上,IV0IV1IV2等是Kafka版本中的协议版本。特定的Kafka版本在开发时可以进行多种协议更改。

  

由于api协议可能在同一个内部改变不止一次   发布并方便人们从主干部署代码,我们有   内部版本的概念(首先在0.10.0期间引入   发展周期)。例如,我们第一次介绍版本   在发布中更改,比如0.10.0,我们将添加一个配置值   “0.10.0-IV0”和相应的案例对象KAFKA_0_10_0-IV0。我们会   还要添加一个配置值“0.10.0”,它将映射到最新版本   内部版本对象,即KAFKA_0_10_0-IV0。当我们改变了   协议第二次开发0.10.0时,我们将添加一个新的   配置值“0.10.0-IV1”和相应的案例对象   KAFKA_0_10_0-IV1。我们将配置值“0.10.0”更改为映射到   最新的内部版本对象KAFKA_0_10_0-IV1。配置值   “0.10.0-IV0”仍然映射到KAFKA_0_10_0-IV0。这样,如果   人们从主干部署,他们可以使用“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