2011-03-25 98 views
5

我開始計劃一個新平臺,它需要整合來自各種外部平臺的各種服務。本質上,我將一系列內部的本土服務和我們從第三方獲得許可的一些外部服務捆綁在一起。爲什麼我會使用Apache ServiceMix而不是ActiveMQ

一般來說外部服務是所有互聯網服務,但他們是REST,SOAP和XML-RPC的混雜。 我們的一些內部服務具有REST API,但有許多事情並不那麼容易:XMPP,Hessian,自定義套接字協議,Java RPC,uWSGI,以及不斷變化的列表。

從我的研究,這似乎是一個ESB像Apache ServiceMix的可能是一個非常適合我的需要。但它看起來非常複雜。我沒有發射火箭,但我確實需要交易消息(主要是針對電子商務和權利資料)。我覺得ServiceMix在消息隊列(ActiveMQ)下使用的消息隊列可能就足夠了。

任何人都可以解釋一下ServiceMix在ActiveMQ之上提供了什麼?我知道有很多,但像我這樣的ESB n00b很難真正把握我在流行語中浪費時間的實際差異。

謝謝!

回答

8

的ServiceMix是一個基於OSGi的容器,可讓您部署和運行在受控運行時環境的應用程序(如J2EE容器但不沉重的重量,無需編程,以例如J2EE合同)。 感謝OSGi,您可以將應用程序劃分爲多個部分,並相互獨立地更新/演變這些部分。您可以升級應用程序的某些部分,而無需關閉整個應用程序。在OSGi中有更好的生命週期管理,然後你可以使用獨立的Java進程。

如果你想創建將隨着時間的應用程序,那麼OSGi是你應該考慮的問題。 ServiceMix爲您提供了一個運行時OSGi容器來部署您的應用程序。我強烈推薦Manning的書「OSGi in Action」。

對於甚至可能使用不同的傳輸協議不同的外部服務捆綁在一起的,我建議Apache的駱駝,這順便說一句也很好地部署到ServiceMix中。

順便說一下,現有的應用程序可以部署到具有相當小的努力OSGi容器(無需更改代碼)。

託斯滕米爾克 於FuseSource 網站:www.fusesource.com 博客:http://tmielke.blogspot.com

+1

+1推薦駱駝。 – 2011-08-12 18:52:36

+0

可以請你看看https://stackoverflow.com/questions/48579060/could-not-start-2-embedded-active-mq-on-different-ports-within-different-spring? – gstackoverflow 2018-02-02 09:12:22

相關問題