我们正在讨论在多个服务器上拆分 Java EE 应用程序层的利弊
澄清一下:假设我有一个带有 .war Web 层和 EJB .jar 业务层的 Java EE 应用程序。他们通过 RMI 进行通信
- 一种部署方法是将 .war 部署在一个应用服务器上的一个 .ear 中,并将业务层部署在另一个应用服务器上的另一个 .ear 中。让我们称之为“拆分”部署模型
- 另一种方法是将 .war 和 .jar 打包在同一个 .ear 中,并将此 .ear 部署在一个应用程序服务器中。我们称其为“一起”部署模型。
以拆分模型命名的优点:
- 强制完全拆分,因此是面向服务架构的良好准备
- 遵循 Oracle 融合中间件高可用性框架(参见例如http://docs.oracle.com/cd/E16764_01/core.1111/e10106/img/ashia158.gif)
- 可扩展性和可重用性(见下文讨论)
以共同模型命名的优点:
- 易于部署和管理
- 更好的性能
- 易于负载平衡
双方都声称更好:
- 轻松监控和容量管理
- 易于故障排除
你对这两个模型有什么想法和经验?你可能会在这篇文章中发现我对某一方面的个人偏见,但我想听到任何一种诚实的论点。