2017-10-23 5 views
1

3ノードのAzureクラスタにApache Kafka 0.10.2.0が導入されています。 server.propertiesファイルにlog.message.format.versionオプションが指定されていないため、カフカバージョン(つまり0.10.2.0)にする必要があります。-IV0バージョンのpostfixは何を意味していますか?

しかし、カフカブローカーのローリングアップグレードを実行しようとすると、サーバーログにlog.message.format.version=0.10.2.0-IV0が表示されています。

Kafka upgrade guideによれば、log.message.format.versionは常にカフカバージョン自体(もちろんserver.properties設定によってオーバーライドされます場合ではない)とまったく同じであることをようです。

  1. -IV0のバージョン番号は何を意味していますか?
  2. なぜlog.message.format.versionがデフォルトはカフカバージョンと異なるのですか?

答えて

0

基本的に、IV0IV1IV2等カフカバージョン内部プロトコルのバージョンです。特定のKafkaバージョンは、開発中に複数のプロトコル変更を行うことができます。

APIプロトコルは同じ リリース内で複数回変化することがあり、トランクからコードを配備する人々を容易にするので、我々は内部のバージョン(最初0.10.0 開発サイクルの間に導入)の 概念を持っています。たとえば、最初に0.10.0のリリースでバージョン の変更を導入するときには、設定値 「0.10.0-IV0」と対応するケースオブジェクトKAFKA_0_10_0-IV0を追加します。 には、最新の 内部バージョンオブジェクト(KAFKA_0_10_0-IV0)にマッピングされるコンフィグレーション値 "0.10.0"も追加されます。 0.10.0の開発中に プロトコルをもう一度変更すると、新しい 設定値 "0.10.0-IV1"と対応するケースオブジェクト KAFKA_0_10_0-IV1が追加されます。最新の内部バージョンオブジェクトKAFKA_0_10_0-IV1を にマッピングするように、設定値 "0.10.0"を変更します。 "0.10.0-IV0"の設定値 は、引き続きKAFKA_0_10_0-IV0にマップされます。この方法で、 人がトランクから展開している場合は、一度に1つの内部バージョンをアップグレードするために、「0.10.0-IV0」と 「0.10.0-IV1」を使用できます。ほとんどの リリースバージョンを使用したい人は、0.10.0リリースにアップグレードするときに「0.10.0」 を使用できます。 (カフカのソースコードから:https://github.com/apache/kafka/blob/c216adb4bbf8306977380a1ec371380e30137765/core/src/main/scala/kafka/api/ApiVersion.scala#L30

+0

私は現在カフカバージョンに 'log.message.format.version'を修正する必要がローリングアップグレード時のように、わかりました。そのために内部のバージョン管理形式を使用する必要がありますか、それとも共通のバージョン形式として使用することができますか? '0.10.2.0'(' 0.10.2.0-IV0'のエイリアスのようなものでしょうか?) – zbynour

関連する問題