我想使用RabbitMQ实现竞争消费者,我有两个(或更多)消费者:
消费者1可以使用“红色”和“蓝色”类型的消息。
消费者2可以使用“红色”和“黑色”类型的信息。
现在,我希望使用竞争的使用者模式在消费者之间进行负载平衡(可能还有更多具有相同配置的消费者实例),并且我希望保持消息排序“松散”完整(我不需要完美的排序,但希望从2小时前开始处理消息,而不是2分钟前的消息)。
示例:我想以以下方式处理以下消息:
有任何方法可以使用RabbitMQ来实现这一点吗?如果我只是为每种消息类型创建一个队列,就无法确保消息的排序。
如果RabbitMQ不是适合这项工作的工具,那么是否有更合适的工具呢?
发布于 2019-02-28 05:37:47
您可以使用priority queue来解决这个问题。通过对red消息赋予更高的优先级,您的consumers将首先获取red消息。当不再留下red消息时,您的consumers将开始使用blue消息。
在使用priority queue时,请确保保持较低的basic.qos值。这允许在队列中对消息进行优先级排序。
https://stackoverflow.com/questions/54829362
复制相似问题