web-dev-qa-db-ja.com

Kafka bootstrap-servers vs kafka-console-consumerのzookeeper

単一のKafkaノードを3つのブローカーとzookeeperでテスト実行しようとしています。コンソールツールを使用してテストしたいので、プロデューサーを次のように実行します。

kafka-console-producer --broker-list localhost:9092,localhost:9093,localhost:9094 --topic testTopic

次に、コンシューマを次のように実行します。

kafka-console-consumer --zookeeper localhost:2181 --topic testTopic --from-beginning

そして、予想通り、プロデューサーにメッセージを入力し、コンシューマーでそれらを見ることができます。 ただし、bootstrap-serverを使用して更新バージョンのコンシューマーを実行すると、何も得られません。例えば

kafka-console-consumer --bootstrap-server localhost:9092,localhost:9093,localhost:9094 --topic testTopic --from-beginning

これは、ポート9092で1つのブローカーを実行しているときにうまく機能したため、完全に混乱しています。 zookeeperがbootstrap= server?として提供しているものを確認できる方法はありますか?bootstrap= serverはブローカーリストと異なりますか?Kafka Scala 2.11でコンパイル.

11
nico

何が間違っていたかわかりません。おそらく、私はKafkaまたはZookeeperを奇妙な状態にしました。各ブローカーのlog.dirのトピックと/brokers/topicsのzookeeperトピックを削除した後、トピックを再作成します= Kafka=消費者は期待どおりに動作しました。

6
nico

ブートストラップサーバーはkafka=ブローカーと同じです。また、bootstrapサーバーzookeeperが提供しているリストを確認したい場合は、ZKクライアントを介してZNode情報を照会できますすべてのアクティブなブローカーは/ brokers/ids/[brokerId]に登録されます。必要なのはzkQuorumアドレスのみです。以下のコマンドは、アクティブなサーバーのリストを表示しますbootstrap=

./zookeeper-Shell.sh localhost:2181 <<< "ls/brokers/ids"

3
sam.ban

一致しないバージョンの使用時に同じ問題が発生しました:

  • Kafkaクライアントライブラリ
  • Kafkaスクリプト
  • カフカのブローカー

私の正確なシナリオでは、Confluent Kafka= Confluent Platform 3.3.0 w/Kafka broker 0.11.0.0のクライアントライブラリバージョン0.10.2.1。をダウングレードしたとき。コンシューマが期待通りに動作したクライアントライブラリと一致する3.3.2へのConfluentプラットフォーム。

私の理論では、新しいConsumer APIを使用する最新のkafka-console-consumerは、最新の形式を使用してメッセージを取得するだけでした。 Kafka 0.11.0.0。で導入された多くのメッセージ形式の変更がありました。

0
Sean Glover