web-dev-qa-db-ja.com

Bootstrap kafkaのサーバーとzookeeper?

Kafka-consumerでのzookeeperの使用が推奨されない理由と、代わりにbootstrap serverを使用することが推奨されるのはなぜですか?bootstrap-serverの利点は何ですか?

17
Slim AZAIZ

Kafkaコンシューマーは、オフセットをkafkaにコミットし、kafkaから、kafkaからオフセットストレージを移動したため、 zookeeperからkafka=ブローカー、kafka-consumerはzookeeperと直接通信する必要がないため、新しいkafkaコンシューマはzookeeperを設定する必要はありません。 kafkaコンシューマーは常にkafka=ブローカー(クラスター)に接続してサーバーにリクエストを送信する必要があります。ブートストラップサーバーはこのクラスターの一部のブローカーであり、これにより、消費者はすべてのブローカーを見つけることができます。

13
GuangshengZuo
  • 古いバージョンのKafka(v 0.9.0)Kafka=データの保存に使用Kafkaサーバーおよびすべてのオフセット関連(現在のパーティションオフセット)などの情報はzookeeperに保存されていたため、コンシューマーが実行するにはデータとメタデータの両方が必要です。したがって、メタデータを取得するには、zookeeperを呼び出す必要があります。 古い消費者コード
  • Kafka ie(v 0.10.0-上記)の新しいバージョン。すべてのトピックメタデータ情報(合計パーティションとその現在のオフセット)を同じKafka server。したがって、Kafkaブローカーはzookeeperと通信するだけでよく、消費者はkafkabroker自体からすべてのデータとメタデータを取得するため、zookeeperと通信する必要はなくなりました。

現在のアーキテクチャの利点:1.同じ場所にあるデータとメタデータの管理がはるかに簡単。

13
Abhimanyu

現在のkafka-consumerツールでは、-zookeeperまたは--bootstrap-server引数を使用して、古いコンシューマーと新しいコンシューマーの使用を区別しています。オフセットはそこに保存されるため、古いコンシューマーはZookeeper接続を必要とします。新しいコンシューマーは、Kafkaブローカーの__consumer_offsetトピックにオフセットが保存されるため、Zookeeperは必要なくなりました。古いコンシューマーを使用することは今日推奨されません。

2
ppatierno