RabbitMQ基本概念の紹介

RabbitMQコンセプト図

RabbitMQコンセプト図

コンセプトの説明

メッセージ

メッセージはメッセージヘッダ(つまり、追加構成情報)とメッセージボディ(つまり、メッセージの内容)で構成されます。

パブリッシャー

メッセージの生産者であり、メッセージをエクスチェンジに公開するクライアントアプリケーションです。

エクスチェンジ

エクスチェンジは、生産者によって送信されたメッセージを受け取り、これらのメッセージをサーバー内のキューにルーティングするために使用されます。

以下の4種類のエクスチェンジがあります:

  • ダイレクト型:メッセージ内のルーティングキーをエクスチェンジのすべてのバインドに関連付けられたルーティングキーと比較します。一致する場合、メッセージはそのバインドの対応するキューに送信されます。
  • トピック型:メッセージ内のルーティングキーをエクスチェンジのすべてのバインドに関連付けられたルーティングキーと比較します。一致する場合、メッセージはそのバインドの対応するキューに送信されます。
  • ファンアウト型:ルーティング中にルーティングキーを無視し、メッセージをすべてのバインドの対応するキューに直接転送します。
  • ヘッダ型:メッセージ内のヘッダをエクスチェンジのすべてのバインドに関連付けられたパラメータと比較します。一致する場合、メッセージはそのバインドの対応するキューに送信されます(あまり一般的ではなく、ダイレクト型に類似)。

注意:エクスチェンジの種類の詳細な説明は、作業モードの後のセクションで提供されます。これは概要です。

バインディング

メッセージキューとエクスチェンジの間の接続を確立するための関係です。

キュー

メッセージキューは、メッセージを消費者に配信されるまで保管するために使用されます。それはメッセージのコンテナとして、またメッセージのエンドポイントとして機能します。メッセージは1つ以上のキューに配信される可能性があります。メッセージは、消費者が接続して取得するまでキューに留まります。

コネクション

TCP接続などのネットワーク接続です。

チャンネル

チャンネルは、実際のTCP接続内で確立された仮想接続です。AMQPコマンドはすべてチャンネルを介して送信されます。メッセージの公開、キューの購読、またはメッセージの受信のいずれかで、単一のTCP接続を再利用するためにチャンネルの概念が導入されています。なぜなら、OSにおけるTCP接続の確立や終了が費用対効果が低いからです。

コンシューマー

メッセージの消費者であり、メッセージキューからメッセージを取得するクライアントアプリケーションを表します。

バーチャルホスト

バーチャルホストは、エクスチェンジ、メッセージキュー、および関連するオブジェクトを表します。それは独自のサーバードメインであり、同じアイデンティティ認証および暗号化環境を共有するものです。各vhostは基本的にRabbitMQサーバーのミニバージョンであり、独自のキュー、エクスチェンジ、バインディング、および許可メカニズムを持っています。

vhostはAMQPの基本的な概念であり、接続を確立する際に指定する必要があります。RabbitMQのデフォルトのvhostは/です。

注意:バーチャルホストは、RabbitMQサーバー内の複数の分離された領域を分割するためのリソース分離戦略の一形態です。

ブローカー

物理的なメッセージキューサーバーエンティティを表します。