我的公司很久以前決定向客戶公開一個JMS隊列以交換數據。我們正在遷移應用程序服務器,我們必須更新所有客戶端庫。所以我們認爲要公開一個更「標準」的界面。到JMS代理的SOAP或REST接口。 「JMS over SOAP」
我們正在尋找一種通過標準SOAP或REST協議公開JMS隊列的簡單方法。它不是通過JMS的SOAP,而是相反的「JMS over SOAP」。
好像ActiveMQ(Artemis)有一個REST協議。對於我們來說,這是一個可行的解決方案,因爲我們正在遷移到Wildfly 10,但它有點複雜(例如,發佈消息需要2個調用:請參閱Posting Messages),它是ActiveMQ特定的。我們必須爲舊的Weblogic服務器再次實施它。
關於CAP定理(提供發送消息重複數據刪除和冪等讀取),我們要尋找的解決方案應該具有與JMS相同的可靠性。任何建議?
可我問爲什麼它必須是「JMS通過SOAP」,因爲它看起來可能是簡單的,如果它是周圍的其他方法,通過Web服務暴露你的接口,並呼籲任何下方它。 – carloliwanag
SOAP over JMS使用JMS作爲傳輸。所以它具有與JMS相同的互操作性問題。例如(據我所知),使用.NET的客戶端不可能連接到這樣的服務。 –
JMS不是運輸工具。這只是一個API。 JMS上的SOAP只是使用底層代理傳輸。儘量不要混淆代理,傳輸協議和消息傳遞API的概念。 而且Camel只是集成服務的框架,並將使用底層代理(默認情況下爲ActiveMQ)。 所以基本上你正在尋找一個具有REST/SOAP API可用的代理。爲什麼不嘗試使用ActiveMQ REST API?你也可以嘗試使用STOMP協議 - 它有廣泛的傳播和許多經紀人的支持。 – Dagon