我们当前的应用程序运行在单个JVM中。允许模块化开发,同时仍在同一个JVM中运行?
我们现在将应用程序拆分为单独的逻辑服务,其中每个服务都在其自己的JVM中运行。
正在进行拆分以允许在不影响整个系统的情况下修改和部署单个服务。这减少了对整个系统的QA需求 - 只需要QA与正在改变的服务的交互。
对于服务间通信,我们使用REST,MQ系统总线和数据库视图的组合。
我不喜欢这个:
- REST意味着我们必须从XML元帅数据/
- DB意见夫妇的系统连接在一起,其违背了独立服务的整个概念
- MQ /系统总线增加了复杂性
- 服务之间不可避免地存在一些代码重复
- 您已经设置了n个JBoss服务器配置,我们必须执行n个部署,n numb呃建立脚本等等等
有没有更好的方式来构建一个内部应用程序以允许模块化开发和部署,同时允许应用程序在单个JVM中运行(并实现相关优势)?
感谢您的回复。服务器如何“促进软件包之间的通信”? – 2010-03-14 21:00:41
我已在编辑的回复中对此进行了扩展。您只需调用所需的方法即可。 – 2010-03-14 21:02:22
我得到的是怎样才能不把应用程序分开?为了让它运行在同一个JVM中,但它的设计使您可以单独部署应用程序的单独“模块”。通过这样做,您可以确信应用程序中唯一发生变化的部分是“模块A”,您只需“模块A”和其他应用程序之间的通信即可进行QA。而且这也会降低更改进入另一个模块的风险,并且当您要部署的所有内容都是“模块A”时会导致一些问题。 – 2010-03-14 21:04:30