メッセージセレクタはパフォーマンスに多少の影響を与えると噂されています...意味があります。 したがって、本質的には、トレードオフのパラメータを把握する必要があります。 メッセージセレクタにどれくらいの利益をもたらし、一方でパフォーマンスのコストを許容することができますか。
要約すると、メッセージングアーキテクチャ(ご質問)とキャパシティパフォーマンステストなどのアクティビティが最終的に答えを与えます。メッセージングアーキテクチャについて
、質問事項がたくさんあります。
- あなたはどのように多くの異なる被験者を持っていますか?
- そのリスト(それは頻繁に変更さん)
- サブ質問どのように動的である:どのようにクライアントは、リストが変更とことを知っていますか?
- 階層が関係していますか?
あなたの質問は、種類と個数とその性質に大きく依存しています。
メッセージセレクタは、サブジェクトが関連し、一部のサブスクライバがサブセットのみに関心がある場合に非常に便利です。
例1:1つのTopic REPORTS、JMSヘッダー "ReportType"が存在する。 この場合、一部のクライアントマイグレーションはすべてのメッセージをスクラブすることを好みますが、他の人は "ReportType = SalesまたはReportType = Weekly"を購読することがあります。 この例題は、主題のリストがいつも変化しているならば、非常にスケッチになるかもしれません...どのプログラムがすべてのレポートを取得するのに興味があるのですか、それとも知らないのでしょうか(彼らは役に立つと自己説明する必要があります)
例2:サブジェクトが階層内で関連している場合... EMSとMQのサブスクリプションは、特定の1つのブランチになることができます。 REPORTS、REPORTS.WEEKLY、REPORTS.SALESの3つのトピックを想像してみましょう クライアントはEMSのREPORTS。*に日没することができます。これはメッセージセレクタなしで実行されます。
例3:非静的トピック。この例では、トピックを作成しますが、多くのことを心配する必要があります。スケーリングのテスト、クライアントへの件名リストの取得、件名の非推奨化の管理、クライアントが多くの科目を聞く(非常に難しい)など..倍数接続???)、
幸運デザイン、
サイドノートで:あなたは...を目指しているのパフォーマンスについてはFTLを見てすることを躊躇しない(別のTIBCOあなたの容量/ perfテストがEMSで満足できるものではなく、JMS機能を失うことに気をつけていない場合は、RabbitMQのような製品が必要です。 EMSは非常に強力で、かなり多くかかる可能性がありますが、他の製品は軽くてパフォーマンスに重点を置くことができます。
Tibco EMSは、サーバー側またはクライアント側でメッセージセレクタを実装していますか?セレクタがクライアント側だけであれば、私はセレクタを避けるでしょう。 – Nicholas