使用EIP和集成解决方案在云上分布层?

时间:2012-07-12 14:32:22

标签: spring cloud apache-camel mule spring-integration

我想为网络应用程序的云部署采用EIP的解决方案:

  • 应用程序将以这样一种方式开发,即每个层(例如数据,服务,Web)将作为单独的模块和工件出现。
  • 每个层都有机会部署在云上的不同虚拟资源上。在这方面,Web节点将在某种程度上找到相关的服务节点,同样服务节点也连接到数据节点。
  • 服务层中的对象提供对应用程序中服务的REST访问。 Web层应该使用服务层的REST服务来完成对应用程序用户的请求。

对于在云上提供“高度可扩展”应用程序的上述要求,似乎Apache CamelSpring IntegrationMule ESB等解决方案具有重要选择。

在这个主题上似乎还有其他讨论,例如a questiona blog post,但我想知道是否有人在“云”上有这样的部署方案的具体经验< / em>的?我会感谢任何想法和分享经验。 TIA。

1 个答案:

答案 0 :(得分:1)

对我来说,这看起来有点像过度工程。是否有一个真正的原因需要将所有这些图层分开?您所描述的内容与几年前的J2EE应用程序非常相似。

如何将应用程序的所有层部署到每个节点上,并使用简单的Java调用或OSGi服务进行通信。

这种方法有几个优点:

  • 不太复杂
  • 无序列化或DTO
  • 交易很容易/没有必要的分布式交易
  • 负载均衡和故障转移更容易,因为您只能在Web层上执行此操作
  • 表现可能要高很多

您可以使用spring或blueprint(在OSGi上)实现此类应用程序。

另一个选择是使用现代JavaEE服务器。如果您对此感兴趣,请查看Adam Bien的一些课程。他展示了如何以非常精益的方式使用JavaEE。

对于节点之间的通信,我对Camel和CXF有很好的体验,但你应尽量避免远程处理。