0
我正在嘗試使用.NET客戶端創建基於ActiveMQ的基於消息的應用程序。JMS:更新消息版本/阻止某些消息排入隊列
- 客戶1:Web服務(製片人)
- 客戶2:Windows服務(消費者)
我的問題是:是否有可能阻止某種類型或含量分別從消息正在由客戶端排隊?
我想這樣做的原因是版本更新。
我想會有一段時間,當我需要擴展或更改消息類型。 我的計劃是按照以下順序進行更新:
- 阻止舊版本的消息排隊。
- 等到消費者處理完所有舊版本的消息。
- 更新生產者和消費者軟件。
我希望Web服務在更新過程中仍然可用以報告給調用。但它不應該能夠排隊新的消息。
當然,如果有更好的方法來解決這個問題,請讓我知道。
好的,這聽起來不錯。但有沒有辦法'關閉'過時的隊列mysystem.orders.1_0,所以舊的Web服務得到一個異常或什麼? –
是的,但只有當您通過塊靜態定義所有目標(您將刪除1_0),並設置用戶授權插件以使admin =「false」(意味着它們無法創建目標動態;請參閱http://activemq.apache.org/security)。然後,您需要重新啓動ActiveMQ來獲取新的靜態目標,然後通過JMX刪除該隊列。 –