特定のトピックをリッスンしている同じgroup.idを持つ複数のコンシューマがあります。トピックには1つのパーティションがあります。単一のパーティションを持つトピックの同じgroup.idを持つ複数のコンシューマの予想される動作
同一の消費者グループの消費者(同一のgroup.idで識別される)は、メッセージが単一の消費者によってのみ処理されるようなラウンドロビン方式でメッセージを取得すると私は理解しています。消費者は異なるマシン上の異なるWindowsサービスで実行されています。
消費者はC#で書かれ、Confluent's Apache Kafka .NET clientに基づいています。私は、すべての消費者が同じメッセージを取得することが経験的に行うしかし
var config = new Dictionary<string, object>
{
{"group.id", "MyConsumerGroupId"},
{"enable.auto.commit", true},
{"auto.commit.interval.ms", 5000},
{"log.connection.close", false},
{"session.timeout.ms", 30000},
{"heartbeat.interval.ms", 5000},
{"queued.min.messages", 1000},
{"partition.assignment.strategy", "roundrobin"},
{"bootstrap.servers", _kafkaCluster},
{
"default.topic.config", new Dictionary<string, object>
{
{"auto.offset.reset", "largest"}
}
}
};
:
の構成は次のようになります。消費者からは、受信したメッセージに関する情報が記録されます。ここでは、同じメッセージ、トピック、オフセット、およびパーティションを持つ複数のログエントリが表示されます。
これは予期された動作ですか?
実際、すべての消費者が同じgroupidに属しているということを考えると、同じメッセージが表示されているのは間違いです。しかし、「消費者が異なるマシン上の異なるWindowsサービスで動作している」と言うと、それはどういう意味ですか? – dbustosp