我正在使用RabbitMQ,我对使用扇出交换和RabbitTemplate
类的ConvertsendandReceive
(或SendandReceive
)方法感到困惑。
例如,我有两个持久队列的使用者QUEUE-01和QUEUE-02,它们绑定到持久扇出交换fanout-01。并将1个发布服务器发送到FANOUT-01。我理解当消息使用convertandsend
(或send
)方法发布时会发生什么,消息将被复制到每个队列并由每个使用者处理。但我不确定如果我将调用sendandreceive
方法会发生什么?我会从哪位消费者那里得到回复?有什么特别的行为吗?我找不到这方面的任何文件。
sendandreceive()
不适用于扇出
消息;至于哪一个答复会赢(一般是第一个)还不确定。如果要处理多个回复并聚合它们,则需要使用离散的send
和receive
调用(或回复的侦听器容器)并自己进行聚合。
考虑对此类情况使用spring集成。它有用于聚合消息的内置组件。