トピック/パーティションにメッセージを書き込むプロデューサーがあります。順序を維持するために、単一のパーティションを使用したいと思います。12 のコンシューマーがこの単一のパーティションからすべてのメッセージを読み取るようにします (コンシューマー グループはなく、すべてのメッセージはすべてのコンシューマーに送信される必要があります)。これは達成可能ですか?パーティションごとに 1 人の消費者しか読めないフォーラムをいくつか読みました。
2 に答える
求めていることを正確に達成するために使用できSimpleConsumer
ます-消費者グループはなく、すべての消費者は単一のパーティションを読み取ることができます。ただし、このアプローチは、オフセットの保存とブローカーの障害処理を自分で処理する必要があることを意味します。
別のオプションは、さまざまなコンシューマー グループで高レベルのコンシューマーを使用することです (各コンシューマーにランダムな UUID を割り当てることができます)。このようにして、すべてのコンシューマーで 1 つのトピック/パーティションを消費し、オフセットをコミットしてブローカーの停止を処理することができます。
「1 つのコンシューマーのみがトピック/パーティションを消費できる」というルールは、コンシューマー グループにのみ適用されます。たとえば、グループ内の 1 つのコンシューマーのみが 1 つのトピック/パーティションを同時に消費できます。
同じパーティションに複数のコンシューマーがある場合、順序を維持するという最初の要件よりも優先されます。ただし、ストレージを注文したことになりますが、消費は順不同になります。あなたがそれで本当に大丈夫であることを確認してください。はいの場合、各消費者を異なる消費者グループとして扱うことができます。