私はメッセージ指向ミドルウェアが何であるかを正確に理解しようとしてきましたが、私にとって意味のある非企業の実例を見つけることができませんでした。誰かが私にMOMが何であるかについての明確で簡単に理解できる説明、そしておそらくそれが企業の外でどのように使われるかについてのいくつかの簡単な例を教えてもらえますか?
5 に答える
メッセージ指向ミドルウェアは、関数呼び出しや共有メモリではなく、メッセージ交換を使用する一種のインフラストラクチャです。これは設計原則であり、結果としてどこでも使用できます。おそらく、異種/高可用性/高性能システムで最も役立ちます。
少し似たような質問に答えたので、あなたの質問に答えたいと思いますが、MOM とは何かを実際的な方法で明確にするために、余分な用語をいくつか追加します。いくつかのコンポーネントの簡単な英語の定義を次に示します (MOM を掘り下げるほど、これらの用語は最終的に何度も出てきます。また、質問にはタグが付けられていますrabbitmq)。
- MOM - アプローチ、分散システムのアーキテクチャです。つまり、分散システム全体の中間層であり、多くの内部通信が行われます (コンポーネントはデータを照会し、それを他のコンポーネントに送信する必要があります。コンポーネントは何らかの処理を行います)。コンポーネントはそれらの間で情報/データを共有する必要があります。
- メッセージ ブローカ- メッセージを処理する (MOM 内の) 任意のシステムです。より正確には、特定のコンシューマ/受信者にメッセージをルーティングするシステムです。メッセージ ブローカは通常、MOM に基づいて構築されます。MOM は、アプリケーション間の基本的な通信を提供し、メッセージの永続性や配信の保証などを提供します。「メッセージ ブローカーは、メッセージ指向ミドルウェアのビルディング ブロックです。」
- Rabbitmq - メッセージ ブローカー。MOM の実装。AMQP のオープンソース実装。ウィキペディアによると:
RabbitMQ は、Advanced Message Queuing Protocol (AMQP) を実装するオープン ソースのメッセージ ブローカー ソフトウェア (メッセージ指向ミドルウェアと呼ばれることもあります) です。
ここでは、私たちの周りで使用されている方法で、MOM をさらに明確にするために、Rabbitmq について言及しました。
メッセージ指向ミドルウェア- アプローチ、分散システムのアーキテクチャ、つまり分散システム全体の中間層です。ここでは、多くの内部通信があるため、コンポーネントはそれらの間で情報/データを共有する必要があります。たとえば、コンポーネントはデータをクエリしてから、データを処理する他のコンポーネントに送信します。つまり、全体的な要件に応じて、システムを設計する方法です。つまり、内部通信を使用して分散システムを開発します。MOM アーキテクチャ/意思決定の最大の利点は、コンポーネントの分離です。つまり、データ クエリ コンポーネントを変更する場合、MOM を介して通信しているため、データ処理コンポーネントには影響しません (例:
最後の MOM は単なる設計上の決定であり、システム (分散) コンポーネントを接着するためのミドルウェア、それらの間の通信をメッセージ (つまり JSON) の形式で処理するためのミドルウェアを使用します。
非常に関連性の高い SO の質問と回答 -メッセージ ブローカーと MOM (メッセージ指向ミドルウェア) の比較
メッセージ指向ミドルウェアは、コンピューターおよびデータ ネットワーク上でメッセージを送受信するためのフレームワーク システムです。ミドルウェア メッセージングは、ブローカー、アプリケーション サーバー、およびビジネス プロセスの自動化の基盤を提供します。
それを説明する素晴らしいスケッチを参照して ください http://www.onlinemq.com/wiki/index.php/Image:Flow-diagram.jpg