如何使用仲裁队列实现消息优先级?

问题描述 投票:0回答:1

我的用例要求根据优先级处理(消费)RabbitMQ 消息。也就是说,高优先级消息将在中优先级之前处理,中优先级消息将在低优先级之前处理。

根据 RabbitMQ 文档,这可以通过 Quorum Queues 为每个优先级使用一个队列来实现。

具体来说,RabbitMQ 文档指出:

仲裁队列支持消费者优先级,但不支持消息优先级。 要使用仲裁队列对消息进行优先级排序,请使用多个队列;每个优先级都有一个。

但是,没有提及如何在消费者层面实现这一点。

我唯一的想法是利用 Rabbit“轮询”API 按顺序轮询每个队列,并且仅在没有返回消息时才转到较低优先级队列;然而,文档还说轮询 API“效率非常低,在大多数情况下应该避免”。

是否有另一种方法可以使用仲裁队列来实现消息优先级?

rabbitmq rabbitmq-exchange
1个回答
0
投票

请参阅此处的讨论:

https://github.com/rabbitmq/rabbitmq-server/discussions/9516


注意: RabbitMQ 团队监控

rabbitmq-users
邮件列表,并且有时只回答 StackOverflow 上的问题。

© www.soinside.com 2019 - 2024. All rights reserved.