NMS.ActiveMQ 消费者优先级
背景
除了拥有可插拔的分发策略(例如轮询等)之外,我们现在还支持消费者优先级。
这使我们能够对消费者进行加权以优化网络跳跃。例如,您通常希望代理将消息发送到常规的 NMS 消费者,而不是发送到其他代理;如果存在可用的消费者,则无需进行不必要的代理到代理的跳跃。
示例
使用 目标选项 设置消费者的优先级,如下所示
var queue = session.GetQueue("TEST.QUEUE?consumer.priority=10");
var consumer = session.CreateConsumer(queue);
分配优先级号的范围为 0 到 127,其中 127 为最高优先级,0 为默认优先级。
它的工作原理是,代理只需根据消费者的优先级对任何队列消费者进行排序,并将消息首先发送到最高优先级的消费者。
一旦特定消费者将其预取缓冲区填满,代理将开始将消息分发到较低优先级的消费者。