JMX 支援
此頁面描述 JMX 管理需求。
必要的 MBean
Broker MBean
我們需要 activemq.broker 套件中核心 Broker 類型的 MBean,以便讓使用者查看 Broker 的組態、其連接器、目前連線的客戶端以及斷開連線的客戶端等資訊。
例如,以下 MBean:
MBean | 描述 |
---|---|
Broker/BrokerContainer | 訊息 Broker 本身 |
BrokerConnector | 監聽新客戶端連線的輸入連接器 |
BrokerClient | 特定的客戶端連線 |
我們有一個舊的 BrokerAdmin 介面,我們應該盡快用適當的 MBean 取代它。
此外,我們需要存取 Broker 內的 MessageContainer 實例。 這些是每個目的地和 QoS 的容器(例如,一個用於持久佇列 Foo,一個用於非持久佇列 Foo)。
因此,我們需要某種方式來檢視和查找這些 MC MBean,因為它們會在使用者開始使用不同的目的地時動態建立。
統計資料
我們實作 J2EE 管理統計資訊,將統計資料新增到每個 JMS 資源:連線、會期、消費者、生產者(我們也已新增對目的地的支援)。因此,我們需要以某種方式在 JMX 中公開這些資訊,以便使用者可以監看/檢視 JMS 客戶端的統計資料
使用案例
以下是我們需要輕鬆支援的最終使用者使用案例清單:
- 瀏覽客戶端連線/會期/生產者/消費者的輸送量
- 瀏覽每個 Broker/目的地/客戶端的 Broker 輸送量
- 查看佇列/主題的狀態(未處理的訊息)以檢查是否有填滿的情況
- 清空佇列
- 從死信佇列重新播放訊息
- 使用訊息 ID 刪除佇列/主題上的訊息
- 斷開 Broker 上的客戶端連線;停止 Broker 連線(以停止新的輸入連線等)
- 停止 Broker
以下是更錦上添花的功能,但如果有的話會更好
- 檢視佇列/主題的內容
- 啟動/停止遠端 Broker
問題
- 我們是否需要/想要每個 JMS 連線/會期/生產者/消費者一個 MBean?我不確定除了作為取得統計資料的一種方式之外還有什麼理由;如果是這樣,或許使用某種統計資料 MBean 會更好?