Rabbitmq 我可以将RPCClient与扇出交换一起使用吗?
我是RabbitMQ新手,需要一些建议 我的情况是,我需要广播一条信息,然后等待及时的回应。换句话说,广播消息期望所有订阅消费者在超时时间内做出响应。直接交换很简单。我可以使用RPCClient等待响应。它如何与扇出交换一起工作?它知道要等待多少用户吗?还是在第一次响应后它会成功返回 如果我创建扇出交换并在创建RPCClient对象时传入它。然后实现我自己的消费者和来自同一exchange和发送方的消费者发送到同一回复队列。这样行吗Rabbitmq 我可以将RPCClient与扇出交换一起使用吗?,rabbitmq,Rabbitmq,我是RabbitMQ新手,需要一些建议 我的情况是,我需要广播一条信息,然后等待及时的回应。换句话说,广播消息期望所有订阅消费者在超时时间内做出响应。直接交换很简单。我可以使用RPCClient等待响应。它如何与扇出交换一起工作?它知道要等待多少用户吗?还是在第一次响应后它会成功返回 如果我创建扇出交换并在创建RPCClient对象时传入它。然后实现我自己的消费者和来自同一exchange和发送方的消费者发送到同一回复队列。这样行吗 请告知。谢谢 是的,它会起作用。RPC是一种模式(如果排除直接
请告知。谢谢 是的,它会起作用。RPC是一种模式(如果排除直接回复),它不绑定到直接交换。您可以将此模式应用于扇出交换 不要等待,而是等待预期的答复或直到达到限时 预期回复和扇出交换的知识通常是矛盾的。所以你只能依靠超时 这是您的问题: 广播消息要求所有订阅消费者在超时时间内做出响应 我增加了重点来说明您的设计中的反模式。广播背后的概念是,广播者既不知道也不关心谁在听广播。通过限制广播者知道谁在收听,您实际上已将一个广播更改为一组单播,但您正在尝试这样做,而实际上并不承认它 现在,让我描述一个更可行的场景,而不使用
all
希望所有的消费者都回复了,但是没有办法知道。如果您需要消费者和广播公司之间的1对1通信,您的情况会变得更加复杂,广播不再是合适的场所。我同意。我正在尝试更新一些用JMS编写的遗留代码,它似乎在使用主题队列,就好像它是一个常规队列一样。因为我没有一个真正的测试用例,这使得它更难理解。我不明白的是,当我创建一个RPCClient时,它会侦听一个对队列的回复。那么现在,广播的RPCClient将等待多个请求?或者我需要破解RPCClient吗?如果我不使用现有的RPCClient类,我不知道如何最好地添加超时。你能建议一下吗?谢谢。为了回答您的第一个评论,我认为您确实需要向您的团队/前任或任何要求您修改代码以理解您试图做什么的人提问。对我来说这听起来很奇怪,这意味着他们可能正在努力实现一些基本的事情,并告诉你“如何”而不是“什么”,我读了你对上述答案的评论。你想从消费者那里得到心跳状态吗?我同意。但RPCClient将如何工作?默认情况下,RPCClient只等待一个响应。所以我需要破解代码并放入循环中来进行响应检索?这令人困惑。如何在分布式系统中执行heartbeat命令?