4

直接交換、ファンアウト交換、トピック交換の違いを理解するために、トピック交換の利点は、プロデューサーが交換にプッシュして完全に特定のルーティングキーを指定し、キューが複数のルーティングキーにバインドできることです。ワイルドカード。たとえば、トピックはにプッシュします...

$channel->basic_publish($msg, 'logs-exchange', 'error.critical.ram')

そして、すべての重大なエラーについてオンコールチームにメッセージを送信するキューは、次のようにバインドされます...

$channel->queue_bind('on-call-team', 'logs-exchange', 'error.critical.*')

そして、同様のキューはerror.*.ram、RAMの増加を担当するシスオペチームにメッセージを送信します。

これはトピック交換の正しいユースケースであり、トピック交換はこの柔軟性をサポートできる唯一の交換ですか?逆に、トピック交換とファンアウト交換の両方は、トピック交換によって実装可能ですか?

4

1 に答える 1

3

これはトピック交換の正しい使用例ですか?

はい、この交換の絶対に正しい使い方です。非常に強力であることがわかります

この柔軟性をサポートできる唯一の取引所はトピック取引所ですか?

はい、同様の直接交換はワイルドカードをサポートしないため、バインドするときに完全なルーティング キーを指定する必要があります。そうしないと、メッセージを受信できません。トピック交換を基礎として使用するカスタムメッセージがあるかもしれませんが、私は1つを考えることはできません

逆に、トピックとファンアウトの両方の交換は、トピック交換によって実装可能ですか?

ここで何を意味するのかわかりません。はい、複数のキューを同じバインディング キーでエクスチェンジにバインドすることができるため、それらはすべて同じメッセージを受信します。ただし、その機能が必要ない場合は、ファンアウト交換自体を使用することもできます。

さらに、いくつかのキューとトピック交換にバインドされているファンアウト交換があります。このエクスチェンジのパブリッシャーは、ルーティング先のトピック エクスチェンジに必要なファンアウト エクスチェンジには必要ありませんが、ルーティング キーを使用します。トピック交換に問題を引き起こしているため、ファンアウトには影響しないため、これは良いことです。

于 2013-02-27T07:34:16.937 に答える