カフカ・コンシューマ・グループ(javaで実装されている)がブローカからのメッセージを一貫して逃していることに注目されています。 kafkaコンソールのコンシューマーを介してデバッグの最初の行として、私はブローカーで利用可能なメッセージを見ることができます。Java Kafkaコンシューマ・グループが少数のメッセージを消費していない
カフカブローカーのバージョン:0.10.1.0
カフカのクライアントバージョン:
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka_2.11</artifactId>
<version>0.9.0.1</version>
</dependency>
カフカの消費者の設定:
Properties props = new Properties();
props.put("bootstrap.servers","broker1,broker2,broker3");
props.put("group.id", "myGroupIdForDemo");
props.put("key.deserializer", StringDeserializer.class.getName());
props.put("value.deserializer", StringDeserializer.class.getName());
props.put("heartbeat.interval.ms", "25000");
props.put("session.timeout.ms", "30000");
props.put("max.poll.interval.ms", "300000");
props.put("max.poll.records", "1");
props.put("zookeeper.session.timeout.ms", "120000");
props.put("zookeeper.sync.time.ms", "10000");
props.put("auto.commit.enable", "false");
props.put("auto.commit.interval.ms", "60000");
props.put("auto.offset.reset", "earliest");
props.put("consumer.timeout.ms", "-1");
props.put("rebalance.max.retries", "20");
props.put("rebalance.backoff.ms", "6000");
KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);
EDIT - いくつかのより多くの情報の追加
私はいくつかのより多くの情報次のように追加します。 合計6つのパーティションがあります。ただし、同じコンシューマ・グループIDを持つトピックの合計消費者数は40です。私は、34人の消費者が遊んでいて何もしないことを理解しています。
しかし、消費者がブローカーが死んだと見なしてパーティションを再割り当てする程度にハートビートを送信できない場合、アイドル状態の消費者のいずれかがメッセージを消費する機会を得るのでしょうか?このメッセージが消費されないという問題は、特定のパーティションでのみ認識されます。私は、メッセージが同じパーティションから配信/消費されないことを意味します。
何か助けていただければ幸いです。ありがとう。
最初/最後/ランダムメッセージがありませんか? – Natalia
'myGroupIdForDemo'で実行中の他のプロセス/スレッドはありますか?ランダムな値を割り当てると、その動作は持続しますか? –
@Natalia、それはランダムなメッセージです。 – thomas