我使用RabbitMQ作为系统中组件的消息总线,以便相互通信。出于某些原因,我想阻止发布者将消息发送到队列/交换机一段时间,然后再恢复它们。你能建议一种方法来实现它吗?我一直在阅读写关于RabbitMQ插件的内容,但由于我对Erlang知之甚少,所以我不确定它是否可以做我期待的事情。
谢谢, 迈克尔
答案 0 :(得分:0)
答案 1 :(得分:0)
我想阻止发布者暂时向队列/交换机发送消息并稍后恢复。
如果您不关心丢失消息,则只需删除交换 - >队列绑定有问题的队列。这将阻止消息路由到队列。
如果你需要"恢复"从中断的地方接收消息,您无法做到。在最初发布消息时,队列要么接收消息,要么不接收消息。例如,您在消息3发布后发布消息1,2,3,4和5.您"停止"路由到队列。之后,您要重新启动路由并在同一队列中接收消息4和5 ......这是不可能的。
如果你需要"简历"选项,最好的办法是阻止消费者,让消息收集在队列中。当您需要再次开始处理消息时重新启动您的消费者。