我们当前的应用程序在单个 JVM 中运行。
我们现在将应用程序拆分为单独的逻辑服务,每个服务在其自己的 JVM 中运行。
进行拆分是为了允许修改和部署单个服务,而不会影响整个系统。这减少了对整个系统进行 QA 的需要——只需要对与正在更改的服务的交互进行 QA。
对于服务间通信,我们使用 REST、MQ 系统总线和数据库视图的组合。
我不喜欢这个:
- REST 意味着我们必须将数据编组到/从 XML
- DB 视图将系统耦合在一起,这破坏了单独服务的整个概念
- MQ/系统总线增加了复杂性
- 服务之间不可避免地存在一些代码重复
- 您已经设置了 n 个 JBoss 服务器配置,我们必须进行 n 次部署、n 次设置脚本等,等等。
是否有更好的方法来构建内部应用程序以允许模块化开发和部署,同时允许应用程序在单个 JVM 中运行(并获得相关的好处)?