消費者優先權
背景
除了可插拔的分派策略 (例如,循環配置) 外,ActiveMQ Classic 也支援消費者優先權。這允許我們權衡消費者以優化網路跳躍。例如,您通常會希望 broker 將訊息傳送給常規的 JMS 消費者,而不是傳送給其他 broker;如果存在可用的消費者,則無需進行不必要的 broker 到 broker 的跳躍。
範例
可以使用目的地選項來設定消費者的優先權,如下所示
queue = new ActiveMQQueue("TEST.QUEUE?consumer.priority=10");
consumer = session.createConsumer(queue);
優先權值的範圍是:0
到 127
。最高優先權為 127
。預設優先權為 0
。
broker 會根據佇列消費者的優先權來排序,並優先將訊息分派給最高優先權的消費者。一旦特定消費者的預取緩衝區已滿,broker 將開始將訊息分派給預取緩衝區未滿的下一個最低優先權的消費者。