2013-01-04 12 views
31

私はこのquestioncorresponding answerを読んでいたとの答えの最初の行に用語JMSブローカーで混乱してしまった:私がしたいMS(ActiveMQのは、JMSブローカーの実装です)JMSエコシステムにおけるJMSブローカの役割は何ですか?

正確にはJMS brokerとは何ですか、その責任は何ですか?

Wikipedia page on JMSは、JMSエコシステムでいくつかの要素を列挙していますが、ブローカーについては言及していません。

答えて

45

実際にJMSブローカーの定義はありませんが、メッセージキューとブローカーの間には概念上の違いがあります。ここにそれを取ります。

  • メッセージキューは、メッセージの送信先を特定するためにメッセージヘッダーのみを調べます。メッセージキューはメッセージ本文を調べたり、メッセージ本文の内容を変換するコードを実行しません。メッセージキューミッションは、メッセージを最終的には一度だけ、そして一度だけ、そしてそれらが送信される順序で配信することである。
  • メッセージブローカーは、メッセージ変換コードを簡単かつ効率的に記述できるプログラミング環境を提供します。たとえば、メッセージの内容を形式Aから形式Bに変換する必要があり、形式Aを使用する古いクライアントを書き直す必要がない場合は、メッセージ変換プログラムを作成してメッセージに展開しますブローカ。この場合、message brokerは、メッセージ処理コードを実行する別のマシン上で実行される可能性のある別個のプロセスになります。

メッセージブローカーの大きな価値は、メッセージを同時に処理したり、ロジックを処理したり、処理ロジックをデプロイしたり、監視したりログを記録したりするのに便利なことです。可能であればカスタム高水準言語でメッセージ処理コードを書き込むための専用アプリケーションサーバーとしてのメッセージブローカー。たとえば、IBM Message Brokerは、ESQL内で、SQLの拡張機能と、相互に接続する図やノードと一緒にプログラミングできます。普通のJMSを使ってすべてのコードを自分で書いた場合よりも、メッセージボッカー用に書かれたプログラムは短くなります。

ブローカーは中央集中型または分散型にすることができます。たとえば、ニューヨークにセントラルブローカーを、ロンドンと香港にクライアントを接続することができます。または、ブローカーを配布して、メッセージの送信元/宛先に近いメッセージ処理を行うロンドンと香港のインスタンスを実行することができます。すべて管理インフラストラクチャーに依存し、メッセージブローカー話す必要がある。

関連する問題