我们当前的应用程序运行在一个JVM中。
我们现在将应用程序划分为不同的逻辑服务,每个服务在各自的JVM中运行。
正在进行拆分,以便在不影响整个系统的情况下修改和部署单个服务。这减少了对整个系统QA的需求--只需要QA与被更改的服务的交互。
对于服务间通信,我们使用REST、MQ系统总线和数据库视图的组合。
我不喜欢的是:
是否有更好的方法来构造内部应用程序以允许模块化开发和部署,同时允许应用程序在单个JVM中运行(并实现相关的好处)?
发布于 2010-03-14 20:58:14
我有点搞不懂你到底在问什么。如果将应用程序拆分为跨网络运行的不同服务,那么数据编组就必须发生在某个地方。
话虽如此,你调查过OSGi吗?您可以将不同的捆绑 (基本上是带有定义接口的附加元数据的jar文件)部署到同一个OSGi服务器中,并且服务器将透明地促进这些包之间的通信,因为所有东西都在同一个JVM中运行--也就是说,您像通常一样在不同的包中调用对象的方法。
OSGi服务器将允许在运行时卸载和升级包,如果遵守OSGi丛生命周期状态,应用程序应该正常运行(如果是降级的话)。
https://stackoverflow.com/questions/2443698
复制相似问题