問題タブ [librdkafka]
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.
c++ - LibRdKafka: commited_offset は常に -1001
消費者グループを実行すると、常に次のような統計が得られます。
ご覧のとおり、すべてのオフセットが -1001 に設定されています。
これは私のセットアップです(default_topicも):
また、トピックに多くのメッセージがあっても、消費者グループがそれらを取得できない場合があります。何か案が?
apache-kafka - librdkafka プロデューサーは Kafka の新しいトピック パーティションについてどのように学習しますか
Kafka クラスターへのメッセージを生成するために rdkafka_simple_producer.c を実行しています。1 つのトピックと 30 のパーティションがあります。デフォルトのラウンドロビン パーティショナーを使用します。プロデューサーが動作して Kafka へのメッセージを生成している間に、さらにパーティションを Kafka に追加します。
プロデューサーがこの変更に気付き、最終的には 40 のトピックすべてに対してプロデュースを開始することを期待しています。しかし、最終的には、元の 30 パーティションにデータが生成されたことしかわかりません。
テストでは、プロデューサーは 2 分間実行されました。
simple_producer に関数呼び出しを追加する必要がありますか、それとも考慮すべき Kafka パラメーターですか?
前もって感謝します!
apache-kafka - メッセージがない場合に Kafka コンシューマーから戻る
Confluent dotnet clientを使ってアプリ起動時にトピックを処理したい。次の例を想定します。
Kafka に新しいメッセージがない場合、c.Consume はブロックされます。アプリケーションの起動 (キャッシュのウォームアップなど) に使用したいので、新しいメッセージがないことがわかったときにコードを続行したいと考えています。
タイムアウトを設定するための過負荷があることは知っていc.Consume(timeout)
ますが、このアプローチの問題は、トピックにメッセージがあり、メッセージを読む時間がタイムアウトを超えた場合、望ましくない null 出力を受け取ることです。
go - max.poll.interval.ms を超えた後に Kafka コンシューマがスタックする
コンシューマーが 5 分間 (max.poll.interval.ms のデフォルト値は 300000ms) メッセージを受信しない場合、コンシューマーはプログラムを終了せずに停止します。コンシューマ プロセスがハングし、それ以上メッセージを消費しません。
次のエラー メッセージがログに記録されます
ここで confluent-kafka-go でErrMaxPollExceeded
定義されていることがわかりますが、それが発生している場所を見つけることができません。
このようなエラーが発生した場合、プログラムが終了しないのはなぜですか?
- カフカ v1.1.0
- librdkafka v1.0.0
- confluent-kafka-go (マスター)
kafka.Consumer に使用される構成