分布式OSGi - 管理所有容器中的捆绑包的正确方法是什么?

Mar*_*ond 7 java distributed osgi provisioning dosgi

我们正在考虑在我们的企业环境中使用分布式OSGi.
我们将进行以下设置:

  • 许多主机上的10到100个OSGi容器提供各种服务.
  • 其中许多服务由多个容器提供.
  • 其中一些服务可能要求在所有容器中保持一致(部署的版本相同).

跨所有容器管理bundle的生命周期(安装,启动,更新,停止,卸载)的正确方法是什么?

几个要求:

  • 由于可能有这么多容器,所有容器应该一起处理; 即,当我即将更新捆绑包时,单个命令应该更新该捆绑包已经存在的所有容器.
  • 命令必须是可重复的:首先在测试系统上执行命令,然后在测试完成后在生产系统上重复完全相同的命令.

我很欣赏有关上述问题的任何建议.

最好的问候,马顿

Ton*_*zel 7

您可能希望了解为类似云的环境制作的更多"托管"解决方案:Apache ACE或其更大的兄弟Amdatu.

Apache ACE将单个OSGi容器转换为托管容器,其状态可以从单个管理点进行控制.Amdatu是一个更完整的框架,包括用于配置的ACE,但增加了横向功能.


ear*_*cam 3

在管理大量捆绑包方面,请查看 Karaf 功能 - 它们极大地简化了对大量捆绑包的处理。

对于分布式方面,请看一下 Karaf 子项目Cellar,它使用 HazelCast 对 Karaf 进行集群(并且通过功能机制安装在 Karaf 中)。