1

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

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

在此处输入图像描述

该组件将

  1. 处理从 Web 层接收到的请求,并处理它以将其转换为服务提供者所需的格式。
  2. 将请求发送给服务提供者
  3. 处理从服务提供商收到的响应,将其转换为我们的应用程序所需的格式。

我们可以在这里使用 Apache Service Mix 吗?在不到 5 秒的时间内处理请求响应周期是否足够快(假设服务提供者在不到一秒的时间内发送响应)。

或者

我们可以使用任何其他 ESB 并且 ESB 的速度是否足以满足我们的要求?

提前致谢。

沙杜尔。

4

4 回答 4

6

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

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

为了在 web 前端和组件之间进行通信,我将使用 jms 并实现我建议使用 camel + pojos 的组件。

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

于 2011-09-06T13:10:48.793 回答
3

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

因此,对于您的方案,唯一的答案是:“ServiceMix 是否足够快”是“是”,因为大部分时间将花费在与您的服务提供商交互(即等待网络的响应)上,而不是在 SM 自己的消息处理代码中。

于 2011-09-11T22:21:35.453 回答
1

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

于 2011-09-07T07:23:39.223 回答
0

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

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

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

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

于 2012-03-26T03:11:15.190 回答