我正在使用
的java客户端
https://www.rabbitmq.com/tutorials/tutorial-six-java.html

。我的设置是RPC。我的服务器正在创建队列,客户端也在创建相同的队列并发送消息。收到消息服务器后正在执行某些操作并将结果发送回客户端。
现在,如果服务器创建队列并连接它,同时由于某种原因删除了队列。服务器没有抛出任何异常,当客户端创建相同的队列并且放置消息时,服务器没有收到这些消息,因为它没有连接。
服务器如何知道队列被删除?
非常感谢
答案 0 :(得分:1)
听起来好像发生了以下情况:
现在,您想知道为什么消费者1没有收到任何消息?您必须重新订阅您的消费者。我通常不删除队列,因为在任何合理的情况下都不需要这样做(相反,使用queue.expires属性来处理队列的自动删除。)
删除队列时,任何待处理的消息都会发送到死信 如果在服务器配置中定义了此队列,则为队列 队列中的消费者被取消了。
因此,根据行为描述,这是消费者的错误。在这种情况下,它应抛出异常或以其他方式退出使用循环。无论如何,在您收到更多邮件之前,您必须重新订阅A'。