2016-07-14 9 views
0

は、それが1つの交換ポイントに異なるキューからメッセージを収集することは可能ですか? それ以降の消費者はこの時点で購読していますか?RabbitMQの交換ポイントのサブスクリプション

私はメッセージを送信するためのサービスを行い、各配信プロセスに対して1つのキューを作成したいと考えています。しかし、このQを管理してください。しかし、消費者はこのすべてを購読する必要があります。

すべてのキューを一点で集めてこの点からのメッセージを受け取るというアイデア しかし、それを実装する方法は?

答えて

0

RabbitMQでは、通常、メッセージは「交換」に公開され、「キュー」から消費されます。そして、交換と待ち行列との間に束縛があります。あなたのケースでは、当然ながら、各送信者のための交換を作成し、これらの交換をすべて1つのキューにバインドして消費することができます。

+0

あなたの異形では、処理されたメッセージの数についてシステムに問い合わせることはできません。 しかし私はsolutiuonに従っています: 一つのメインキュー –

+0

あなたの変形では、処理されたメッセージの数についてシステムに問い合わせることはできません。 しかし私は解決策に従っています: 1つのメインキューと各配信/送信者(追加のQ)のための多くのキュー。労働者はメインQだけで購読しますが、メインQのメッセージには追加のQという名前のフィールドが含まれています。 ワーカーはメインと追加のQからメッセージを受け取ります。いつでも、rabbitMQにaddQのメッセージ数を問い合わせることができます。または、私はこのQを削除して配送プロセスを停止することができます。 これは奇妙なアーキテクチャかもしれませんが、それは私のニーズを満たす –

+0

私はほとんどあなたのポイントを得ました。たとえば、3人の送信者と3人の送信者キュー(送信者ごとに1つ)を希望するとします。送信キューのメッセージが収集キューに集約されることが期待されます。あなたのサブスクライバは、収集キューにのみサブスクライブします。 1つの質問があります。収集プロセスを自動化したいですか?自動であれば、送信キューにメッセージが送信されている限り、送信キューから削除されて収集キューに収集されます。送信キュー内のメッセージ数を取得しようとすると、メッセージは常に0になります。 –

関連する問題