如何查詢佇列的大小
常見問題 > 使用 Apache ActiveMQ Classic > 如何查詢佇列的大小
我該如何檢查佇列的大小?我知道這不是 JMS 標準,但大多數 JMS 實作都有方法可以做到。
您可以使用 ActiveMQ Classic 5.x 中的 MBean 來檢視佇列深度。使用任何 JMX 管理主控台來查看統計資訊。請參閱如何監控 ActiveMQ Classic。
您也可以使用 JMS QueueBrowser來瀏覽佇列的內容。
或者,您可以程式化地存取統計資訊。
透過 MBean,您可以監控個別的目的地,包括與目的地相關的訊息統計資訊。例如,您會在目的地(佇列或主題)上看到以下屬性:
- Enqueue Count - 自上次重新啟動以來,傳送到佇列的訊息總數
- Dequeue Count - 自上次重新啟動以來,從佇列中移除(由消費者確認)的訊息總數
- Inflight Count - 已傳送到消費者工作階段且尚未收到確認的訊息數量
- Dispatch Count - 傳送到消費者工作階段的訊息總數 (Dequeue + Inflight)
- Expired Count - 因過期而未傳遞的訊息數量
「佇列的大小」也在「QueueSize」屬性中明確指出。QueueSize 是佇列/儲存中尚未由消費者確認的訊息總數。與 Enqueue Count 相比,有時會造成混淆,因為 Enqueue Count 是某段時間內的計數(自上次代理程式重新啟動以來),而 Queue Size 並不依賴於一段時間,而是依賴於儲存中的實際訊息數量。