使用 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 和集成解决方案在云上分布层?的主要内容,如果未能解决你的问题,请参考以下文章

企业集成模式解决方案绘图工具 [关闭]

Spring 集成与 ServiceMix ESB

云上大数据存储:探究 JuiceFS 与 HDFS 的异同

中国制造的“天工开物”新篇,如何在云上进化?

如何使用 ejabberd 聊天应用程序通过 API 层传递服务器

一款跑在云上的定制容器专属 OS 来了——LifseaOS | 龙蜥技术