我们正在开发一个基于 JavaEE 6 的应用程序以部署在 JBoss EAP 6.1 上。该应用程序有 2 个主要的呈现机制:一个 Web 管理控制台和一个 RESTful 服务 API。在后端,管理控制台和 RESTful 服务 API 都依赖于一系列 EJB 来执行事务逻辑和 POJO 服务来检索数据。
所有这些不同层的性能和资源需求完全有可能不同。RESTful 服务相当精简且完全无状态,而管理控制台是有状态的并且具有更多交互功能(因此需要更多内存和处理)。由于我们的 EJB 执行我们的主要事务性业务逻辑,因此它们需要比我们简单查询数据库的 POJO 数据服务更多的处理能力。
考虑到这样的设置,部署一个包含所有这些组件的 EAR(在集群配置中的多个应用服务器中)或者将各个组件分解为单独的 EAR 是否更有意义?我对单独 EAR 的想法是,例如,如果我发现 EJB 服务存在可伸缩性问题,我可以部署更多实例,即使 Web 控制台(例如)的伸缩性很好。
鉴于每个层/组件的可扩展性不同,我应该采取什么方法?跨 EAR 进行远程 EJB 调用的开销是否太高而无法考虑这种模型?任何意见是极大的赞赏!