rabbitmqでは、プロデューサーがメッセージを作成すると、キューに直接送信されず、まずメッセージがエクスチェンジに送信され、その後ルーティングエージェントがそれを読み取り、ヘッダー属性、バインディング、ルーティングキーを使用して適切なキューに送信されます。
RabbitMQ Exchange Types
rabbitmq では、4種類のExchangeがあり、異なる方法でメッセージをルーティングすることが可能です。
以下はrabbitmqで利用できるさまざまなタイプのExchangeです。
- Direct
- Fanout
- Topic
- Headers
RabbitMQ Direct Exchange
rabbitmqで、ダイレクトExchangeはメッセージルーティングキーに基づいてキューにメッセージを配信します。 直接交換では、メッセージはメッセージのルーティングキーとバインディングキーが正確に一致するキューにルーティングされます。
以下にrabbit直接交換のメッセージフローを図式化したものを示します。
RabbitMQ Fanout Exchange
rabbitmq において、fanout exchangeはそれに結合されているすべてのキューにメッセージをルーティングします。
RabbitMQ Topic Exchange
rabbitmq では、topic exchange はキューにメッセージを発行するためにルーティングキーと結合で指定したルーティングパターン間のワイルドカードマッチを実行します。
RabbitMQ Headers Exchange
rabbitmq において、headers exchange はルーティングにメッセージヘッダー属性を使用します。
次に、Web 管理プラグインを使用して rabbitmq に Exchange を追加する方法を説明します。
RabbitMQ Create Exchange
新しい Exchange を作成するには、最初に rabbtimq Web 管理ポータルを開いてデフォルト資格情報を入力し、Exchanges タブを選択してログインしてください。
Exchangesタブに移動したら、Add a new exchange panelが表示されますので、そのパネルをクリックして展開すると、以下のような新しいExchange作成用の異なるプロパティが含まれるようになります。
RabbitMQ Exchange Properties
以下は rabbitmq で新しい Exchange を作成するために入力しなければならない、さまざまなタイプのプロパティです。
Property | Description |
---|---|
Name | 名前は設定する交換名で、ユニークでなければなりません。 |
Type | 要件に応じて、トピックやファンアウトなど必要な交換タイプを選択できます。 |
Durability | プロパティにより、サーバが再起動してもメッセージを存続させることができます。 Durable を選択した場合、メッセージはサーバーの再起動後も存続します。 |
Auto Delete | 自動削除プロパティを使用すると、割り当てられたキューをアンバインドした場合に、Exchangeが削除できるかどうかを設定することができます。 |
Alternate-exchange | Exchange へのメッセージ送信に問題がある場合、このプロパティを使用すると、キューにメッセージを送信する代替 Exchange を指定することができます。 |