为什么我要使用 Apache ServiceMix 而不是 ActiveMQ
我开始规划一个新的平台,需要集成来自各个外部平台的各种服务。本质上,我将一堆内部的、本土的服务和我们从第三方获得许可的几个外部服务捆绑在一起。
一般来说,外部服务都是 Web 服务,但它们是 REST、SOAP 和 XML-RPC 的混合体。 我们的一些内部服务有 REST API,但有很多事情并不那么容易:XMPP、Hessian、自定义套接字协议、Java RPC、uWSGI 等等。
根据我的研究,像 Apache ServiceMix 这样的 ESB 似乎很适合我的需求。然而它看起来真的很复杂。我不会发射火箭,但我确实需要事务消息传递(主要用于电子商务和权利内容)。我觉得 ServiceMix 在底层使用的消息队列 (ActiveMQ) 本身就足够了。
谁能解释一下 ServiceMix 在 ActiveMQ 之上以及之外提供了什么?我知道有很多,但对于像我这样的 ESB n00b 来说,当我沉浸在流行语中时,很难真正掌握有形的区别。
谢谢!
I am starting to plan a new platform which needs to integrate various services from various externals platforms. Essentially I'm tying together a bunch of internal, homegrown services and several outside services we license from 3rd parties.
Generally speaking the external services are all web services but they are a mishmash of REST, SOAP and XML-RPC.
Some of our internal services have REST API's but there are many things that aren't so easy: XMPP, Hessian, custom socket protocols, Java RPC, uWSGI, and the list goes on.
From my research it seems like an ESB like Apache ServiceMix might be a good fit for my needs. However it looks REALLY complex. I'm not launching rockets but I do need transactional messaging (mostly for eCommerce and entitlement stuff). I feel like the message queue ServiceMix uses under the hood (ActiveMQ) might be enough on its own.
Can anyone explain what ServiceMix provides above and beyond ActiveMQ? I know there is a lot but it is hard for an ESB n00b like me to really grasp the tangible difference when I'm waste-deep in buzzwords.
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
ServiceMix 是一个基于 OSGi 的容器,允许您在受控运行时环境中部署和运行应用程序(类似于 J2EE 容器,但重量较轻,并且无需对 J2EE 合约等进行编程)。
感谢 OSGi,您可以将应用程序划分为多个部分,并彼此独立地更新/发展这些部分。您可以升级部分应用程序,而无需删除整个应用程序。 OSGi 中的生命周期管理比独立 Java 进程要好得多。
如果您考虑创建一个会随着时间的推移而发展的应用程序,那么您应该考虑 OSGi。 ServiceMix 为您提供了一个运行时 OSGi 容器来部署您的应用程序。我强烈推荐 Manning 的《OSGi in Action》一书。
为了将甚至可能使用不同传输协议的不同外部服务捆绑在一起,我推荐 Apache Camel,顺便说一句,它也可以很好地部署到 ServiceMix 中。
顺便说一句,现有的应用程序可以轻松部署到 OSGi 容器中(无需更改代码)。
托斯顿·米尔克
熔断源
网址:www.fusesource.com
博客:http://tmielke.blogspot.com
ServiceMix is an OSGi based container that allows you to deploy and run applications in a controlled runtime environment (like a J2EE container but less heavy weight and without programming to e.g. J2EE contracts).
Thanks to OSGi you can partition your applications into parts and update/evolve these parts independently from each other. You can upgrade parts of your application without having to take down the entire application. There is far better life cycle management in OSGi then you get with standalone Java processes.
If you think of creating an application that will evolve over time, then OSGi is something you should consider. And ServiceMix provides you a runtime OSGi container to deploy your applications to. I highly recommend the book "OSGi in Action" from Manning.
For tying together different external services that might even use different transport protocols I recommend Apache Camel, which btw also deploys nicely into ServiceMix.
Btw, existing applications can be deployed into an OSGi container with fairly little effort (without requiring code changes).
Torsten Mielke
FuseSource
Web: www.fusesource.com
Blog: http://tmielke.blogspot.com