2016-12-20 85 views
0

我的公司很久以前決定向客戶公開一個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相同的可靠性。任何建議?

+0

可我問爲什麼它必須是「JMS通過SOAP」,因爲它看起來可能是簡單的,如果它是周圍的其他方法,通過Web服務暴露你的接口,並呼籲任何下方它。 – carloliwanag

+0

SOAP over JMS使用JMS作爲傳輸。所以它具有與JMS相同的互操作性問題。例如(據我所知),使用.NET的客戶端不可能連接到這樣的服務。 –

+0

JMS不是運輸工具。這只是一個API。 JMS上的SOAP只是使用底層代理傳輸。儘量不要混淆代理,傳輸協議和消息傳遞API的概念。 而且Camel只是集成服務的框架,並將使用底層代理(默認情況下爲ActiveMQ)。 所以基本上你正在尋找一個具有REST/SOAP API可用的代理。爲什麼不嘗試使用ActiveMQ REST API?你也可以嘗試使用STOMP協議 - 它有廣泛的傳播和許多經紀人的支持。 – Dagon

回答

0

根據我的理解,這是反模式,我們想要結合REST/Webservice和JMS或創建混合模型。

與REST/Webservice相比,JMS具有強大的可靠性,性能,監控,異常處理,異步響應和有保證的交付。 JMS唯一的弱點是可以通過創建混合模型來克服的外部防火牆訪問。 Restful JMS。 http://activemq.apache.org/rest.html http://activemq.apache.org/activesoap.html

感謝