我已在捆绑包中实施2个服务A,B。我想通过构建一个新的jar文件并执行更新命令来更改服务A的代码,但保持服务B的运行而无需再次启动它。
听起来像您在1个捆绑包中有2个服务。部署单元是一个捆绑包,因此我的建议是将两个服务分成两个捆绑包。否则,取消部署您现有的捆绑包自然也会破坏服务B。
或者,如果API /接口位于单独的捆绑软件中,则可以在单独的捆绑软件中以更高的优先级为A部署新的服务实现,并重新连接该服务的所有使用。通常这很令人困惑,因此这是遥远的第二名推荐。
编辑:您评论说您将服务捆绑在一起以最大程度地减少jar的数量,但是您想独立地更新服务。专门用于最大程度地减少罐子数量:您是否要解决确实存在的问题?我主要使用的是Liferay,它是完全OSGi的软件,并且普通的香草安装附带了1000多个捆绑软件-运行时可以很好地处理它。确保您没有抢先优化不需要优化的内容。
如果您的组件的维护间隔不同,则将它们部署在不同的捆绑软件中。期。对系统无用,束数完全没有问题。