概要 -
- プロトコル-一連のルール。
- AMQP - AMQP は、メッセージを確実に送受信するためのオープンなインターネット プロトコルです。
- MOM (メッセージ指向ミドルウェア) - アプローチ、分散システムのアーキテクチャです。つまり、分散システム全体の中間層であり、多くの内部通信が行われます (コンポーネントがデータを照会し、それを他のコンポーネントに送信する必要があります)。コンポーネント (データに対して何らかの処理を行う) であるため、コンポーネントはそれらの間で情報/データを共有する必要があります。
- メッセージ ブローカ- メッセージ (送信と受信) を処理する (MOM 内の) 任意のシステムです。より正確には、特定のコンシューマ/受信者にメッセージをルーティングするシステムです。メッセージ ブローカは通常、MOM に基づいて構築されます。MOM は、アプリケーション間の基本的な通信を提供し、メッセージの永続性や配信の保証などを提供します。「メッセージ ブローカーは、メッセージ指向ミドルウェアのビルディング ブロックです。」
- Rabbitmq - メッセージ ブローカー。MOM の実装。AMQP のオープンソース実装。ウィキペディアによると:
RabbitMQ は、Advanced Message Queuing Protocol (AMQP) を実装するオープン ソースのメッセージ ブローカー ソフトウェア (メッセージ指向ミドルウェアと呼ばれることもあります) です。
あなたが尋ねたように:
MOM を検索すると、MOM のプロトコルである AMQP に関する情報が見つかりました。これはどういう意味ですか?
MOM は (分散) システム コンポーネント間にメッセージング ミドルウェア (中間層) を配置することであり、AMQP はメッセージを確実に送受信するためのプロトコル (一連のルール) です。そのため、MOM 実装 (つまり、Rabbitmq) は AMQP を使用できます。
ではMOMとは?
Message-Oriented-Middleware - アプローチであり、分散システムのアーキテクチャです。つまり、分散システム全体の中間層であり、多くの内部通信が行われます (コンポーネントがデータを照会し、それを他のコンポーネントに送信する必要があります)。そのため、コンポーネントはそれらの間で情報/データを共有する必要があります。簡単に言えば、システムを設計する方法です。たとえば、全体的な要件に応じて、分散システムを開発し、内部通信を行う必要があります。MOM アーキテクチャ/意思決定の最大の利点は、コンポーネントの分離です。つまり、データ クエリ コンポーネントを変更する場合、MOM を介して通信しているため、データ処理コンポーネントには影響しません (例:
最後の MOM は単なる設計上の決定であり、システム (分散) コンポーネントを接着するためのミドルウェア、それらの間の通信をメッセージ (つまり JSON) の形式で処理するためのミドルウェアを使用します。メッセージ指向のミドルウェアを実装するには、さらに必要なものがあります - 具体的なルールのセット、つまり、メッセージがどのように発行され、消費されるか、確認応答がどのように機能するか、メッセージの存続期間は消費されるまで、メッセージの持続性など. AMQP は、基本的にこれらの一連のルール、つまり MOM を実装するための標準/プロトコル、つまり AMQP を使用するメッセージング システムであり、規定されたルールによってそれ自体を制限することを意味します。ウィキペディアから:
AMQP は、SMTP、HTTP、FTP などが相互運用可能なシステムを作成したのと同じように、異なるベンダーの実装が相互運用可能な範囲で、メッセージング プロバイダーとクライアントの動作を義務付けています。
また、RabbitMQ が AMPQ プロトコルを実装していることも読みました。それで、RabbitMQ がメッセージ ブローカーになるのはなぜですか?
はい、Rabbitmq はメッセージ ブローカーです (パブリッシャー -> エクスチェンジ -> キュー -> コンシューマー)。これはオープン ソースの AMQP 実装です。つまり、AMQP (AMQP ルール) に限定されたメッセージング システム/ブローカーです。Rabbitmq をミドルウェア、つまり MOM として使用できます。
AMQP - 単なる一連のルールです。つまり、メッセージのパブリッシュ、(キューでの) 保持、消費、配信確認などの方法です。
メッセージ ブローカーと MOM は同じものですか?
簡単に言えば、はい。分散システムに MOM 設計を採用する必要がある場合は、Rabbitmq (メッセージ ブローカー、AMQP 実装) をミドルウェアとして使用できます。