0

assign を使用してパーティションを指定する CPP Kafka コンシューマがあります。assign() を使用してパーティションを割り当て、subscribe() を使用しないので、問題ありません。このため、私の再調整は行われませんが、これも問題ありません。

質問 1: 自動コミットがここでどのように機能するかを理解したいです。同じ groupId を持つ 2 つのコンシューマがあるとします。どちらもすべての更新を取得しますが、ここでコミットがどのように行われるかを理解するのを手伝ってもらえますか? コンシューマーが 1 つしかない場合、コミットはコンシューマー グループ ID を使用して行われます。しかし、それは 2 人の消費者とどのように機能しますか。これらの場合、コミットの失敗も見られません。

質問 2: パーティションを割り当てると、rd_kafka_offsets_store はどのように機能しますか。これらはうまくいきますか、それともこれらの場合にサブスクライブを利用する必要がありますか?

4

1 に答える 1

1
  1. 同じ group.id を持つ 2 つのサブスクライブしていないコンシューマーは、割り当てられたパーティションのオフセットを相関または競合解決なしでコミットします。同じパーティションが割り当てられている場合、互いのコミットを上書きします。一意の group.id を使用するか、トピックを購読してください。
  2. rd_kafka_offsets_store()assign()またはと同じように機能しsubscribe()ます。つまり、次の自動または手動コミットでコミットするオフセットを (メモリに) 格納します。
于 2020-05-28T08:15:00.590 に答える