RPCチュートリアルを見る必要があると思います。あなたの説明から、それがあなたがやりたいことのように聞こえます。ただし、それにはおそらく、必要以上のキューを宣言する必要があります。
これに別の方法でアプローチします。同じ交換だけでなく、コンシューマーが消費している同じキューによってプロデューサーに返信を返す理由がわかりません。
プロデューサ P1、P2、および P3 がルーティング キー "abc.aaa.xyz" / "abc.bbb.xyz" / "abc.ccc.xyz" を使用して交換 X1 に送信するのは意味がありません。次に、キュー Q1、Q2、Q3 をバインド キー " .aaa. " / " .bbb. " / " .ccc ." で X1 にバインドするか、バインド キー "abc.*.xyz" で Q1 だけにバインドします (正確には不明です)。あなたが望むものなので、いくつかの提案をしてください)。コンシューマー C1、C2、および C3 によって消費されるもの
コンシューマーがメッセージの処理を完了すると、それ自体を識別するルーティング キーを使用してメッセージを X2 に送信します。プロデューサは、X2 にバインドされたキューから消費します。
私が言おうとしているのは、複数のコンシューマがキューから読み取る必要がないということです。それが必要なケースは 1 つだけで、それはタスク キューです。ユースケースがはっきりしないので、タスクキューが必要になる場合があります。その場合でも、プロデューサーがコンシューマーと同じタスク キューから読み取らないようにする必要があります。タスク キューとは別に、1 つのキューから 1 つのコンシューマを読み取る必要があります。1 つの交換に多くのキューがあり、1 つのキューから 1 つの交換に多くのバインディングが存在する場合もあります。
これが役立つことを願っています