我担心回复是一个很大的问题,但我会揭露我试图实施的情景。也许有人看到了更好的方法。
我们有一个扇出交换,表示N个用户之间的对话(conv1) 我们有两个名为user1,user2的交换,绑定到conv1,其中conv1是源, 每个用户交换被绑定到conv1,其中conv1作为目的地,具有路由密钥conv1
如果我们使用路由密钥" conv1"通过交换用户1发送消息,则该消息将到达连接到user1和user2交换的所有消费者。
用户应该能够让多个消费者听取他的交换
我需要做的是,当没有消费者连接到用户交换机时,这些消息可以排队,并在连接时通过用户交换机接收。我的第一个想法是在用户交换和会话交换之间放置一个队列,因此流程将如下:
consumer-user1 - > tempqueue - > user1 - > conv1 - > queueuser2 - > user2 - >消费者用户2
但似乎无法制作绑定queueuser2 - > user2在那个方向。
如果我让消费者直接听这个queueuserN,通过将它们绑定到conv1而不是绑定用户交换:
consumer-user1 - > tempqueue - > user1 - > conv1 - > queueuser2 - >消费者用户2
然后(消极地)消息只到达N个可能连接的消费者中的一个。
有什么办法可以吗?似乎铲子插件就是这样做的,但是经纪人之间......