2017-09-20 8 views
0

私はアーキテクチャ上の問題があります。特定のユーザーに対するRabbitMQフィルタ

私は(ファンアウト、ダイレクト、トピック、ヘッダー)交換、バインディング、キュー、そしてメッセージアーキテクチャに関するほとんどすべてを表していることは知っています。私は次の問題があり、いくつかのアドバイスが必要です。

私はアプリケーションに通知ロジックを実装したいと思います。各ユーザーは彼専用の通知をリアルタイムで受信します。 (実際には、私はUIとBEの言語/フレームワークが何であるかは言及したくありません。抽象度のレベルが上がるためです)UIはWebSocket、SockJS、STOMPでRabbitMQに接続します。私のUIは消費者に過ぎず、BEは作家であり、それはRabbitMQにいくつかのメッセージを追加するものです。

特定のユーザーを識別するための一意のルーティングキー(例:my-routing-to-empoyee-with-id-1)とN個のキューユーザーごとにこれは私にとっては重すぎる(私は実際にはそれほど多くの待ち行列を持つのが実際の状態かどうかはわかりません)。

私は1つのキューしか使用できないメッセージがあり、メッセージは誰に宛てられたのですか?

私はトピック交換ができ、1人のライターと多数のサブスクライバを持つことができる解決策を知っていますが、このようにして、クライアントレベルでのみメッセージをフィルタリングできます。 :(

+0

あなたはすべてのキューを使用していないと考えられていますが、実際にUIがrecei意志それらのメッセージをキューイングする必要がありますかえ?私は待ち行列から離れて、ちょうどいくつかの通知ストアを使います。あなたはUIに接続してメッセージを読む –

+0

こんにちは、Alex、 もちろん、私はWebSockets通信とRabbitMQのない短いポーリングメカニズムを使用します。この短いプーリングは、サーバに非同期リクエストを行ったときに毎回動作しますが、少なくとも1分間隔。このように、私は永遠のセッションを維持しませんし、反対側から、私は最適化チェックを行います。しかし、私の質問は興味深いトピックです。私はいくつかのコメントと提案を読むことに興奮しています。 – Streetsouls

答えて

0

実は、私は私がかなりよく持っている問題を説明し、非常に興味深い記事を見つけた。

を、私は、これは抗ある選択的消費者とエンタープライズ統合パターンためと呼ばれたい何パターンと我々はそれを使用しないでください

の詳細については、希望者全員がこの記事を読むことができます:。?https://derickbailey.com/2015/07/22/airport-baggage-claims-selective-consumers-and-rabbitmq-anti-patterns/

関連する問題