問題タブ [sarama]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
go - パーティションから消費できないパッケージ
トピックから消費することができず、コードまたはカフカ構成に問題があるかどうかわかりません。私が得ている問題は、「開始」の印刷ステートメントでスタックしているため、チャネル <-partitionConsumer.Messages() からメッセージを受信していないことです。
これらは、いくつかのメッセージを含む kafka セットアップ ( https://kafka.apache.org/quickstart ) で行った手順です。次のコマンドを実行すると値が表示されるため、それらが存在することは確かです。
bin/kafka-console-consumer.sh --partition 0 --topic test --bootstrap-server localhost:9092 --offset 最も早い
- bin/zookeeper-server-start.sh config/zookeeper.properties
- bin/kafka-server-start.sh config/server.properties
- bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic テスト
- bin/kafka-console-producer.sh --broker-list localhost:9092 --topic テスト
go - Kafka に接続した後に Golang コンシューマーが Kafka メッセージを受信する際の遅延
私は Golang と Kafa を初めて使用するので、これはばかげた質問のように思えるかもしれません。
Kafka コンシューマーが最初に Kafka サーバーに接続した後、Kafka サーバーへの接続を確立してから最初のメッセージを受信するまでに遅延 (~ 20 秒) があるのはなぜですか?
直前にメッセージを出力し、受信したメッセージconsumer.Messages()
ごとに別のメッセージを出力します。~20 秒の遅延は、1 番目fmt.Println
と 2 番目の間fmt.Println
です。
docker-compose.yml
go - Golang アプリ内に 1 つまたは複数の sarama.SyncProducer が必要ですか?
私は Golang を初めて使用します。イベントを kafka に公開するアプリを作成する必要があります。次の質問に対する答えが見つかりません。
- sarama.SyncProducer はいくつ必要ですか?
- すべてのアプリで 1 つを使用しても問題ありませんか? なんらかの生産者プールを用意する必要がありますか?
go - Kafka: クライアントが利用可能なブローカーを使い果たしました
更新: Docker のポートに問題があることが判明しました。なぜこの現象が修正されたのかわかりません。
奇妙なエラーに遭遇したと思います。私はSaramaライブラリを使用しており、コンシューマーを正常に作成できます。
このコードを分割してメイン ルーチンの外に移動するとすぐに、次のエラーが発生します。
kafka: クライアントが通信可能なブローカーを使い果たしました (クラスターに到達できますか?)
コードを次のように分割しました。以前の main() メソッドは、NewConsumer() というメソッドを持つコンシューマ パッケージに変換し、新しい main() は次のように NewConsumer() を呼び出します。
パニックステートメントが次の行でトリガーされ、sarama.NewConsumer
出力されますkafka: client has run out of available brokers to talk to (Is your cluster reachable?)
このようにコードを分割すると、Sarama がコンシューマを作成できなくなるのはなぜですか? Sarama はメインから直接実行する必要がありますか?