RabbitMQ で提供されるさまざまな交換タイプを使用する実際のシナリオを把握できません。
2 に答える
Exchange は、AMQP プロトコルで定義されたエンティティです。RabbitMQ チュートリアルで AMQP の概念を参照してください。
直接交換では、メッセージ ルーティング キーに基づいてメッセージがキューに配信されます。直接交換は、メッセージのユニキャスト ルーティングに最適です。
ファンアウト交換は、それにバインドされているすべてのキューにメッセージをルーティングし、ルーティング キーは無視されます。ファンアウト交換は、メッセージのブロードキャスト ルーティングに最適です。大規模マルチプレイヤー オンライン (MMO) ゲームでは、リーダーボードの更新やその他のグローバル イベントに使用できます。スポーツ ニュース サイトは、ファンアウト エクスチェンジを使用して、スコアの更新をほぼリアルタイムでモバイル クライアントに配信できます。分散システムは、さまざまな状態と構成の更新をブロードキャストできます。グループ チャットでは、ファンアウト交換を使用して参加者間でメッセージを配信できます (ただし、AMQP にはプレゼンスの概念が組み込まれていないため、XMPP の方が適している場合があります)。
トピック エクスチェンジは、メッセージ ルーティング キーと、キューをエクスチェンジにバインドするために使用されたパターンとの一致に基づいて、メッセージを 1 つまたは複数のキューにルーティングします。使用例: POS などの特定の地理的位置に関連するデータの配布。複数のワーカーによって実行されるバックグラウンド タスク処理。それぞれが特定の一連のタスクを処理できます。株価の更新 (およびその他の種類の財務データの更新); 分類またはタグ付けを含むニュースの更新 (たとえば、特定のスポーツまたはチームのみ)。クラウド内のさまざまな種類のサービスのオーケストレーション。各ビルダーが 1 つのアーキテクチャまたは OS のみを処理できる、分散アーキテクチャ/OS 固有のソフトウェア ビルドまたはパッケージング。
ヘッダー交換は、ルーティング キーよりもメッセージ ヘッダーとして表現しやすい複数の属性でルーティングするように設計されています。ヘッダー交換は、「ステロイドの直接交換」と見なすことができます。ヘッダー値に基づいてルーティングされるため、ルーティング キーが文字列である必要がない直接交換として使用できます。たとえば、整数またはハッシュ(辞書)にすることができます。
例については、rabbitmq チュートリアルを参照してください。