Java 处理异步HTTP请求/响应的体系结构:ESB与异步HTTP客户端库

Java 处理异步HTTP请求/响应的体系结构:ESB与异步HTTP客户端库,java,web-services,apache-camel,esb,apache-servicemix,Java,Web Services,Apache Camel,Esb,Apache Servicemix,我们正在开发一个应用程序集成器,它同时向各种Web服务发送请求,聚合每个Web服务返回的数据,并将其格式化以显示在UI上。每个Web服务可能都有专有的xml格式。此外,我们不习惯损害用户体验 我们为此需求确定了ESB(Servicemix/Mule)和异步Http客户端 有人能建议哪一个更好的选择吗?异步Http客户端似乎很适合,因为它在servicemix上是轻量级的 谢谢, 阿米特·帕特尔你已经回答了你自己的问题。是的,ESB是一个不错的选择。你可以用 第二种选择是异步消息传递,但它会很复杂

我们正在开发一个应用程序集成器,它同时向各种Web服务发送请求,聚合每个Web服务返回的数据,并将其格式化以显示在UI上。每个Web服务可能都有专有的xml格式。此外,我们不习惯损害用户体验

我们为此需求确定了ESB(Servicemix/Mule)和异步Http客户端

有人能建议哪一个更好的选择吗?异步Http客户端似乎很适合,因为它在servicemix上是轻量级的

谢谢,
阿米特·帕特尔

你已经回答了你自己的问题。是的,ESB是一个不错的选择。你可以用


第二种选择是异步消息传递,但它会很复杂,因为您必须正确地编排服务。

根据您的要求,我建议您使用WSO2 ESB。与其他ESB不同的是,使用wso2,您没有商业和社区版本。因此,您从WSO2获得的功能包括其他ESB供应商的“商业版本”中提供的所有功能。此外,WSO2不仅提供了ESB,还提供了一个完整的SOA平台来满足您的SOA需求

对于您上面提到的要求,您可以尝试以下方法

你也可以用l来表示


它支持范围广泛,而且是轻量级的,并且具有灵活的部署模型(单机版、spring、maven、webapp、OSGi等)。

呃,我们对编码纯java和ESB(mule和spring集成)进行了生产率测试。我们让3个开发人员在所有3个版本中都做同样的事情(mule、SI,以及没有ESB的纯java)。他们发现不使用ESB时速度快了6倍,我们在问题中给出了很多可以利用ESB的东西,但最终没有帮助……所有xml编码和api用法的混乱导致了开发团队的效率低下。不仅如此,市场上也很难找到ESB开发人员

注意:我们甚至聘请了一位高级spring集成人员来完成这项工作,他在纯java中完成代码的速度也更快。他喜欢spring集成,在参加我的测试后,他改变了主意

注意使用错误的框架可能导致的巨大生产力损失。6次是一个巨大的惩罚。我的意思是1个月和6个月是一个很大的区别

一个6倍的生产力损失值得花一周时间做你自己的开发者生产力测试。一些人和我争论说他们还不知道这个框架,这就是为什么我们找了一个高级spring集成人员来进行测试


另外,确保你的测试至少需要一个小时左右……只要从你准备编写的应用程序中开发一些虚假但现实的需求,这样你就可以在运行研究的同时在应用程序上取得进展。我也希望看到更多的结果发布。

我们也在关注ServiceMix。这里是Mule和ServiceMix之间的比较,Apache Camel最终获胜。我们确实尝试了它,因为它有一个java api,看起来不错。然而,我们并没有用那个特定的解决方案运行生产力测试,但如果有人运行测试,我会对任何结果感兴趣。