我尝试在Rabbit MQ中设置以下用例:
起初,似乎消费者优先考虑的问题可能是解决方案。 https://www.rabbitmq.com/consumer-priority.html。但是,当进程A被阻止处理其他消息时,它将向进程B发送消息。我只希望它们在进程A关闭时发送到进程B。
第二个选项可能是无效的字母。 https://www.rabbitmq.com/dlx.html。如果进程A不是从队列A中读取消息,则消息最终将超时,然后移动到将消息转发到进程B读取的队列的交换器中。但是,该选项需要等待消息超时,这并不理想。即使进程A仍在工作,消息也可能超时,这是不理想的。
有什么想法可以为上述用例配置Rabbit MQ?谢谢
答案 0 :(得分:0)
根据您对我的问题的回答,我可能会在使用方上使用优先级,以便进程A处理最多的消息以及较高的预取计数(如果可能,您必须确保您的进程可以处理如此高的消息)数字)。
然后,进程B将处理由于高负载而无法处理进程A的消息,或者在进程A不可用时处理所有消息。在高负载的情况下,某些消息以更高的延迟处理可能是可以接受的。不要忘记为进程B设置低的预取计数。
希望这会有所帮助。