我正在开发一个应用程序,它将以异步方式向多个服务提供商发送请求,整理响应并将结果显示给用户。
我打算创建一个用于处理每个服务提供者的组件。组件将松散耦合,因此添加或删除服务提供商应该非常容易。
组件
我们可以在这里使用Apache Service Mix吗?它是否足够快以在不到5秒的时间内处理请求 - 响应周期(假设服务提供商在不到一秒的时间内发送响应)。
OR
我们可以使用任何其他ESB并且ESB足够快以满足我们的要求吗?
提前致谢。
Shardul。
答案 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平台之上。试试看。