0

我想采用EIP的解决方案进行 Web 应用程序的云部署:

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

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

似乎还有其他讨论,例如关于此主题的问题博客文章,但我想知道是否有人对“云”上的这种部署方案有具体经验?我会感谢任何想法和分享经验。TIA。

4

1 回答 1

1

对我来说,这看起来有点像过度工程。是否有真正的理由需要分离所有这些层?您所描述的看起来很像几年前的 J2EE 应用程序。

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

这种方法有几个优点:

  • 复杂性更低
  • 没有序列化或 DTO
  • 交易很容易/不需要分布式交易
  • 负载平衡和故障转移更容易,因为您只能在 Web 层上进行操作
  • 性能可能要高得多

您可以使用 spring 或 blueprint(在 OSGi 上)来实现这样的应用程序。

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

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

于 2012-07-12T15:03:50.727 回答