为什么我只使用Apache ServiceMix而不仅仅是ActiveMQ

时间:2011-03-25 22:57:02

标签: activemq esb apache-servicemix

我开始计划一个新平台,需要整合各种外部平台的各种服务。基本上我把一堆内部的本土服务和几个外部服务捆绑在一起,我们从第三方获得许可。

一般来说,外部服务都是Web服务,但它们是REST,SOAP和XML-RPC的混合体。 我们的一些内部服务有REST API,但有许多事情并不那么容易:XMPP,Hessian,自定义套接字协议,Java RPC,uWSGI以及列表都在继续。

根据我的研究,似乎像Apache ServiceMix这样的ESB可能非常适合我的需求。然而它看起来真的很复杂。我不是发射火箭但我确实需要交易消息(主要用于电子商务和授权的东西)。我觉得ServiceMix使用的消息队列(ActiveMQ)本身就足够了。

任何人都能解释一下ServiceMix在ActiveMQ之上提供的内容吗?我知道有很多东西,但是像我这样的ESB n00b很难真正掌握当我在流行语中浪费时的切实差异。

谢谢!

1 个答案:

答案 0 :(得分:8)

ServiceMix是一个基于OSGi的容器,允许您在受控运行时环境中部署和运行应用程序(如J2EE容器,但重量较轻,无需编程,例如J2EE合同)。 感谢OSGi,您可以将应用程序划分为多个部分,并相互独立地更新/发展这些部分。您可以升级部分应用程序,而无需删除整个应用程序。在OSGi中有更好的生命周期管理,然后您可以使用独立的Java进程。

如果您考虑创建一个随时间发展的应用程序,那么OSGi就是您应该考虑的事情。 ServiceMix为您提供了一个运行时OSGi容器来部署您的应用程序。我强烈推荐Manning出版的“OSGi in Action”一书。

为了将可能使用不同传输协议的不同外部服务捆绑在一起,我推荐Apache Camel,它也可以很好地部署到ServiceMix中。

顺便说一句,现有的应用程序可以轻松地部署到OSGi容器中(无需更改代码)。

Torsten Mielke 于FuseSource 网址:www.fusesource.com 博客:http://tmielke.blogspot.com