首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以将RPCClient与扇出交换一起使用吗?

我可以将RPCClient与扇出交换一起使用吗?
EN

Stack Overflow用户
提问于 2015-06-19 23:10:45
回答 2查看 519关注 0票数 2

我是RabbitMQ的新手,需要一些建议。

我有一种情况,我需要广播一条消息,然后等待及时的响应。换句话说,广播消息期望来自所有订阅消费者的超时周期内的响应。使用直接交换是很简单的。我可以使用RPCClient来等待响应。它如何与扇出交换一起工作?它会知道要等待多少订阅者吗?或者它会在第一次响应后成功返回吗?

如果我创建了一个扇出交换,并在创建RPCClient对象时传入它。然后实现我自己的消费者和消费者,消费者从相同的交换和发送者发送到相同的回复队列。它会起作用吗?

请给我建议。谢谢!

EN

回答 2

Stack Overflow用户

发布于 2015-06-24 20:54:14

这是你的问题:

广播消息期望在超时时间段内收到来自订阅用户的响应。

我强调了你的设计中的反模式。广播背后的概念是,广播公司既不知道也不关心谁在收听它。通过对广播者创建一个知道谁在收听的约束,您已经有效地将一个广播变成了一堆单播,但却试图在没有实际承认的情况下这样做。

现在,让我描述一个更可行的场景,而不使用all这个词。

  1. 您可以通过扇出或主题交换发送广播消息。
  2. 使用者接收消息
  3. 使用者通过原始广播消息中指定的直接交换将新消息发送到应答队列。
  4. 从应答队列读取消息的使用者将使用消息,直到超时时间结束。

希望所有的消费者都回复了,但没有办法知道。如果你要求消费者和广播公司之间一对一的通信,你的情况就会变得复杂得多,广播不再是合适的场所。

票数 3
EN

Stack Overflow用户

发布于 2015-06-20 15:46:11

是的,它会工作的。RPC是一种不绑定到直接交换的模式(如果我们排除直接回复)。您可以将此模式应用于扇出交换。

而不是等待one reply,而是等待预期的回复或直到超时。

预期回复和扇出交换的知识通常是矛盾的。所以你只能依靠超时。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30941574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档