使用 EIP 和集成解决方案在云上分布层?
Posted
技术标签:
【中文标题】使用 EIP 和集成解决方案在云上分布层?【英文标题】:Use EIP and integration solutions to distribute layers on cloud? 【发布时间】:2012-07-12 08:08:37 【问题描述】:我想采用EIP 的解决方案为 Web 应用程序进行云部署:
应用程序将以这样一种方法开发,即每一层(例如数据、服务、Web)都将作为一个单独的模块和工件出现。 每一层都有机会部署在云上的不同虚拟资源上。在这方面,Web 节点会以某种方式找到相关的服务节点,同样服务节点会连接到数据节点。 服务层中的对象提供对应用程序中服务的 REST 访问。 Web 层应该使用来自服务层的 REST 服务来完成对应用程序用户的请求。对于在云上交付“高度可扩展”应用程序的上述要求,Apache Camel、Spring Integration 和Mule ESB 等解决方案似乎是重要的选择。
似乎还有其他关于此主题的讨论,例如a question 或a blog post,但我想知道是否有人对“云”上的这种部署方案有具体经验?我会感谢任何想法和分享经验。 TIA。
【问题讨论】:
【参考方案1】:在我看来,这有点像过度工程。是否有真正的理由需要分离所有这些层?你所描述的看起来很像几年前的 J2EE 应用程序。
如何将应用程序的所有层部署到每个节点上并仅使用简单的 Java 调用或 OSGi 服务进行通信。
这种方法有几个优点:
复杂性更低 没有序列化或 DTO 事务很容易/不需要分布式事务 负载平衡和故障转移更容易,因为您只能在 Web 层上进行操作 性能可能要高很多您可以使用 spring 或 blueprint(在 OSGi 上)来实现这样的应用程序。
另一个选择是使用现代 JavaEE 服务器。如果您对此感兴趣,请查看 Adam Bien 的一些课程。他展示了如何以非常精简的方式使用 JavaEE。
对于节点之间的通信,我对 Camel 和 CXF 有很好的经验,但你应该尽量避免远程处理。
【讨论】:
以上是关于使用 EIP 和集成解决方案在云上分布层?的主要内容,如果未能解决你的问题,请参考以下文章