Apache ServiceMix是否可能成为解决方案?它足够快吗?

时间:2011-09-06 10:07:35

标签: apache-camel mule esb apache-servicemix

我正在开发一个应用程序,它将以异步方式向多个服务提供商发送请求,整理响应并将结果显示给用户。

我打算创建一个用于处理每个服务提供者的组件。组件将松散耦合,因此添加或删除服务提供商应该非常容易。

enter image description here

组件

  1. 处理从Web Layer收到的请求并处理它以Servie Provider要求的格式进行翻译。
  2. 将请求发送给服务提供商
  3. 处理从服务提供商处收到的响应,将其转换为我们的应用程序所需的格式。
  4. 我们可以在这里使用Apache Service Mix吗?它是否足够快以在不到5秒的时间内处理请求 - 响应周期(假设服务提供商在不到一秒的时间内发送响应)。

    OR

    我们可以使用任何其他ESB并且ESB足够快以满足我们的要求吗?

    提前致谢。

    Shardul。

6 个答案:

答案 0 :(得分:6)

Servicemix应该能够处理这个问题。主要问题是你是否需要servicemix。

如果您希望组件在OSGi上运行,那么您可以使用servicemix或karaf + camel(类似于servicemix light)。

要在Web前端和组件之间进行通信,我会使用jms并实现我建议使用camel + pojos的组件。

如果您需要更多帮助,请随时与我联系。看来你已经在IRC找到了我:-) 用户名:cschneide或cschneider

答案 1 :(得分:3)

关于速度:在集成项目中,消息传递/处理基础设施本身很少成为瓶颈,而是与外部服务的接触点。

所以唯一的答案是:“ServiceMix足够快”,因为你的场景是“是”因为大部分时间都花在与你的服务提供商交互上(即等待网络的响应),而不是SM自己的消息处理代码。

答案 2 :(得分:1)

在FuseESB 4.2版本上,我在具有2GB RAM的DualCore笔记本电脑上达到了每秒15,000个电话。调用了ServiceMix公开的CXF服务。在内部,调用OSGi注入的一个Spring bean,它只返回随机数据。 ServiceMix可以集群化。所以我认为它作为Java容器足够快。

答案 3 :(得分:0)

关于“够快吗?”事实上,您可以查看http://esbperformance.org以获得8个开源ESB的性能比较。虽然现在大多数ESB表现都很好,但UltraESB被认为是表现最佳的ESB。

查看您的要求,这是任何ESB的典型用例。您需要使用过滤和转换功能来实现此功能。

过滤器将根据消息内容或传入URL等属性决定调用哪个流,并转发到所需的流。每个流都需要使用所需的转换逻辑进行检测,以调用服务提供者。以同样的方式将后向响应分派到正确的流程以进行反向转换。

免责声明:我为支持UltraESB的公司AdroitLogic工作。

答案 4 :(得分:0)

有关最新的ESB性能信息,您可能需要查看ESB Performance – Making of the Fastest ESB

答案 5 :(得分:-1)

WSO2 ESB是另一个很酷的选择。 WSO2 ESB基于基于OSGI的WSO2 Carbon平台 及其100%免费和开源,并提供number of samples,你可以尝试开箱即用。此外,WSO2不仅仅是一个ESB,而是一个comprehensive SOA platform,我们有ESB,Identity Server,数据服务服务器,业务流程服务器等,它们运行在基于OSGi的Carbon平台之上。试试看。