如何在更新捆绑OSGI时保持服务/ componnet运行

问题描述 投票:2回答:1

我已在捆绑包中实施2个服务A,B。我想通过构建一个新的jar文件并执行更新命令来更改服务A的代码,但保持服务B的运行而无需再次启动它。

osgi bundle apache-felix declarative-services
1个回答
3
投票

听起来像您在1个捆绑包中有2个服务。部署单元是一个捆绑包,因此我的建议是将两个服务分成两个捆绑包。否则,取消部署您现有的捆绑包自然也会破坏服务B。

或者,如果API /接口位于单独的捆绑软件中,则可以在单独的捆绑软件中以更高的优先级为A部署新的服务实现,并重新连接该服务的所有使用。通常这很令人困惑,因此这是遥远的第二名推荐。

编辑:您评论说您将服务捆绑在一起以最大程度地减少jar的数量,但是您想独立地更新服务。专门用于最大程度地减少罐子数量:您是否要解决确实存在的问题?我主要使用的是Liferay,它是完全OSGi的软件,并且普通的香草安装附带了1000多个捆绑软件-运行时可以很好地处理它。确保您没有抢先优化不需要优化的内容。

如果您的组件的维护间隔不同,则将它们部署在不同的捆绑软件中。期。对系统无用,束数完全没有问题。

© www.soinside.com 2019 - 2024. All rights reserved.