コンシステント ハッシュによってコンシューマー間で一貫して作業を分散したいプロデューサーがいます。たとえば、コンシューマ ノード X と Y では、タスク A、B、C は常にコンシューマ X に、D、E、F はコンシューマ Y に移動する必要があります。ただし、Z がコンシューマのプールに参加すると、少しシフトする可能性があります。
コンシューマー ノードに接続するための独自のロジックを記述したくありませんでした。特に、ノードのプールへの参加と退出を管理する必要はありませんでした。そのため、RabbitMQ と、コンシューマー ノードごとの専用キューを使用する道をたどりました。 .
私が直面している問題の 1 つは、これらのキューを一覧表示することです。プロデューサーは、作業が分散される前に、使用可能なすべてのキューを知る必要があるためです。AMQP はキューの一覧表示さえサポートしていないため、私のアプローチ全体が不確かになります。ただし、 RabbitMQ と Alice (現時点では壊れています) はその機能を追加しています: RabbitMQ でキューと交換を一覧表示するための API はありますか?
これはRabbitの賢い使い方ですか?メッセージキューを使用する必要がありますか? キューが自分の作業をコンシューマ間で一貫して分割できるようにするためのより良い設計はありますか?