38

私はこの質問対応する回答を読んでいて、回答の最初の行にあるJMSブローカーという用語に混乱しました。

MS(ActiveMQはJMSブローカーの実装です)

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

JMSに関するウィキペディアのページには、JMSエコシステムのいくつかの要素がリストされていますが、ブローカー自体については言及されていません。

4

1 に答える 1

52

JMSブローカーとは何かについての公式の定義は実際にはありませんが、メッセージキューとブローカーの間には概念的な違いがあります。これが私の見解です。

  • メッセージキューは、メッセージヘッダーを調べてメッセージの送信先を特定するだけであり、メッセージキューはメッセージ本文を調べたり、メッセージ本文の内容を変換するコードを実行したりしません。メッセージキューの使命は、メッセージを送信するために、最終的には1回だけ配信することです。
  • メッセージブローカーは、メッセージ変換コードを簡単かつ効率的に記述できるプログラミング環境を提供します。たとえば、メッセージのコンテンツをフォーマットAからフォーマットBに変換する必要があり、フォーマットAを使用する古いクライアントを書き直さなくてもよいため、メッセージトランスレータプログラムを作成してメッセージにデプロイする必要があります。ブローカ。この場合、message brokerは、メッセージ処理コードの実行を担当する別のマシンで実行される可能性のある別のプロセスになります。

メッセージブローカーの大きな価値は、メッセージを同時に処理するためのいくつかの本当に素晴らしいこと、処理ロジックのフェイルオーバー、処理ロジックの展開、監視とロギングなどを実行できることです。メッセージブローカーを特殊なものと考えてください。おそらくカスタムの高レベル言語でメッセージ処理コードを記述するためのアプリケーションサーバー。たとえば、IBMメッセージ・ブローカーは、相互に接続する図やノードとともに、SQLの拡張機能であるESQLにプログラムすることができます。メッセージボーカー用に作成されたプログラムは、プレーンなJMSを使用してすべてのコードを自分で作成した場合よりも短くなります。

ブローカーは一元化または分散化できるため、たとえば、ニューヨークに中央ブローカーを配置し、ロンドンと香港にクライアントを接続することができます。または、ブローカーを分散させて、ロンドンと香港でインスタンスを実行し、メッセージの送信元/宛先の近くでメッセージ処理を実行することもできます。これはすべて、管理インフラストラクチャと、データベースなどの他のリソースに依存します。と話す必要があります。

于 2013-01-08T05:35:08.740 に答える