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