2016-10-25 4 views
2

カフカコンシューマー0.10は0.9ブローカーと互換性がありますか?カフカコンシューマー0.10は後方互換ですか?

私が誤解していないのであれば、0.9の消費者はまだベータと見なされますが、0.10は安定しています。だから私は0.10バージョンを使用することに興味がありますが、私のブローカーバージョンは0.9であり、まだそれをアップグレードしたくありません。

答えて

11

0.10クライアントを使用する場合は、クラスタを0.10にアップグレードする必要があります。

カフカはクライアントに関して後方互換性がありますが、フォワード互換性はありません。つまり、0.9クライアントは0.10クラスタを使用できますが、0.10クライアントは0.9クラスタを使用できません。

まず、クラスタを0.10にアップグレードし、クライアントを徐々に0.9から0.10に移行します。

+0

これは妥当と思われます。これについて言及している文書はありますか?あなたはそれを自分で試しましたか?ありがとう –

+1

https://kafka.apache.org/protocol.html#protocol_compatibilityに暗黙的に記載されています。 「サーバーは、サポートしていないバージョンの要求を拒否し、要求に含まれているバージョンに基づいて、期待しているプロトコルの形式で常にクライアントに応答します」そして、はい、kafka-console-consumer.shと-new-consumerフラグを使って両方のケースをテストしました。それは新しいJavaコンシューマを使用しています。 –

+0

kafkaブローカーがscala 2.11を使用していて、kafkaクライアント/プロデューサーがscala 2.12を使用している場合は重要ですか?それは動作するようだが、チェックしたかった? – Rory

2

あなたはあなたのクライアントが書かれている言語とあなたが使っているクライアントライブラリを言っていませんでした。 librdkafkaに基づくクライアントのような一部のクライアントは、古いブローカへの接続を処理できますが、一般的なルール(デフォルトのApache kafka Javaクライアントでも当てはまります)は、ブローカがクライアントと同じかそれ以上のバージョン番号でなければなりません。言い換えれば、Kafkaは後方互換性がありますが、まだ完全に前方互換性はありません。

+0

はい、私は新しいJavaコンシューマAPIを意味しました。それを指摘してくれてありがとう。 –

関連する問題