我在主題發佈者和可變數量的主題訂閱者之間使用JMS(ActiveMQ)。Pub/Sub範例:我可以知道訂閱者是否還活着嗎?
我將不得不檢查,在給定的時間,一些訂戶是否「脫機」(斷開連接,關機,無法通信等...)。
JMS是否允許發佈者知道哪些訂戶被「註冊」?
現在,我已經實現了它,以便訂戶在特定隊列(作爲生產者)發送「活動」消息,並且發佈者接收它們(充當消費者):如果檢測到任何訂閱者在X秒(閾值)沒有「ping」時,它被假定爲離線。 它的作品,但我很好奇,知道如果我重新發明了輪...
我知道這個功能是不完全相關的消息或Pub/Sub範式,我也知道Pub/Sub是專門設計的發佈商不必擔心其消息將被消費的人數/時間......但我想知道,如果它想知道,也許有一種方法。 畢竟,它似乎不是一個特別罕見的用例....
非常感謝。
也許使用此線程中顯示的持久訂閱http://stackoverflow.com/questions/4937262/how-to-find-out-all-subscribers-to-a-jms-topic-have-replied – Alfabravo 2011-12-30 16:15:33
@Alfabravo該線程中顯示的解決方案特定於HornetQ。也DurableSubscriptions是不是真的關於我想檢查,他們?他們所做的只是將消息保存在內存中,以便將它們傳遞給「不可緩解」的訂閱者......這不會將訂閱者列表公開給我的程序。 – mdm 2011-12-30 16:23:37
不是,該設置不綁定到HornetQ。 http://docs.oracle.com/cd/E19798-01/821-1841/bncgd/index.html Aaaand很好,也許有了適當的解決方法,它可能會幫助您http://docs.oracle.com/cd/ E19798-01/821-1841/bncfx/index.html的 – Alfabravo 2011-12-30 16:41:57