2015-08-18 29 views
0

我試圖解決的下一個任務:JMS自動持久性和自動恢復

  1. 我有1個輸出隊列和1個輸入隊列和數據庫。
  2. 如果輸出隊列不可用,我需要將所有輸入消息保存到數據庫。
  3. 只要輸出隊列可用,輸入隊列(或代理)應該開始發送來自數據庫的所有消息,同時從數據庫中刪除這些消息。所有應該自動完成,而不是手動完成。

任何消息代理(ActiveMQ,RabbitMQ)是否具有「開箱即用」解決方案?

回答

1

我不認爲任何消息傳遞提供程序都提供您所要求的開箱即用支持。你需要編寫一個應用程序來完成這項工作。應用程序可以非常簡單,它使用全局事務協調將消息放入隊列並從數據庫中刪除。

如果您的業務邏輯允許,我建議您考慮在輸入隊列時使用持久消息的可能性。這樣,當輸出隊列不可用時,您可以避免將消息保留到數據庫。當輸出隊列變爲可用時,應用程序可以從輸入隊列中提取消息,處理並放入輸出隊列。