QPID AMQP
ネットワーク トラフィックの再評価について質問があります。Machine A に Publisher があるとします。Qpid ブローカーはマシン B で実行されています。マシン C とマシン D の 2 人のサブスクライバーがいます (どちらも同じトピックにサブスクライブしています)。ここで、トポロジを想像してください。
A-->B-->X-->C | D (パブリッシャー A は B に接続され、サブスクライバー C および D は中間ノード X を介してブローカーに接続されます) C および D のトピックに一致する A によってパブリッシュされたメッセージは、両方によって受信されます。エッジ b->x はメッセージを 2 回 (b->x->c で 1 回、b->x->c で 2 回目) 伝送します。または、AMQP/qpid フレームワークは、メッセージを B から X に 1 回送信してから、個々のサブスクライバーにコピーを送信するのに十分なほどインテリジェントですか (したがって、b->x のネットワーク トラフィックが少なくなります)。私が考えたのは、X は何も知らないので、サブスクライバーごとにプライベート サブスクリプション キューがある場合 (または、共有キューがあり、メッセージを消費する代わりに閲覧/コピーしている場合でも)、メッセージは b->x を 2 回通過することです。
この質問は QPID に固有のものではありません。他のブローカー ベース (RabbitMQ) およびブローカーレス メッセージング フレームワーク (Zero MQ、LBM/UMS) のソリューションを知りたいです。Zero Mq がよりスマートなソリューションを提供しようとしている記事http://www.250bpm.com/pubsub#toc4を読みましたが、複数のコピーを送信するかどうかを中間ホップがどのように知るか (私はネットワーキングではありません)専門家なので、何かわかりにくいものがあるかもしれませんので、どんな助けも本当に感謝しています)