7

CentOS で Python クライアントを使用して Kafka 0.10.0.0 にローカルで接続しようとすると、非常に奇妙な問題が発生します。

私の接続オプションは非常にシンプルでデフォルトです。

kafka_consumer = kafka.KafkaConsumer(
        bootstrap_servers=['localhost:9092'],
        client_id="python-test-consumer"
    )

Kafka の server.properties ファイルでリスナーオプションを手動で設定すると、次のようになります。

listeners=PLAINTEXT://localhost:9092

curl やその他の Linux を使用して Kafka ブローカー サーバーに簡単に接続できるにもかかわらず、kafka.errors.NoBrokersAvailable を取得します。

アドバタイズされたリスナーやその他の非推奨のアドバタイズ オプションは、問題の解決に役立ちません。したがって、機能している構成の唯一の状態は、リスナーのない状態です。どうにかしてローカル クラスターをセットアップする必要があるため、これは確かに受け入れられません。

このばかげた問題の解決策は簡単なようで、いろいろ考えているのですが、私たち自身では解決できませんでした。

4

1 に答える 1

4

これはばかげているように聞こえるかもしれませんが、これが原因でまったく同じ問題が発生しました。

Brew(Macパッケージマネージャー)を介してKafka 0.10.0.0にアップグレードしました。次に、Brew は次のワンライナーのように実行することを提案します。

$ zookeeper-server-start /usr/local/etc/kafka/zookeeper.properties; kafka-server-start /usr/local/etc/kafka/server.properties

以前に実行した方法の代わりに:

$ zkServer start
$ kafka-server-start /usr/local/etc/kafka/server.properties

このアプローチは、クライアントでこれらの「No Brokers Available」エラーをスローし続けることを提案しました。次に、コマンドを 2 行に分割します。

$ zookeeper-server-start /usr/local/etc/kafka/zookeeper.properties
$ kafka-server-start /usr/local/etc/kafka/server.properties

そして、すべてが以前と同じように機能します!

これがうまくいかない場合は申し訳ありませんが、言及する価値があると思いました.

于 2016-08-04T13:28:21.623 に答える