0

如果:

  • 我有一个包,我希望在 n 个 OSGi 容器上运行,导出一些服务;
  • 我正在使用 DS 注册配置更改时的修改方法,因此我可以通过 ConfigurationAdmin 更新服务,并根据 RFC119 远程导出接口;
  • 我正在使用 Discovery 从其他盒子上的其他捆绑包中调用这些服务,是否可以使用 ConfigurationAdmin 对此服务进行中央配置,以便我可以通过 Configuration Admin 发布配置更改,并且它会被所有实例接收服务运行?

从我读过的所有内容看来,ConfigurationAdmin 不支持网络,并且对于每个 OSGi 容器都是本地的?

提前感谢您的洞察力:)

4

2 回答 2

0

因此,您的包在 N 个容器上运行,仅将其服务导出到该本地容器,并使用远程服务导出 ManagedService 以将其发布到某个运行 ConfigurationAdmin 的“中央”容器?

您是对的,ConfigurationAdmin 不支持网络,但是如果捆绑包将其 ManagedService 远程发布到运行 Configuration Admin 的容器,它应该可以工作。唯一需要注意的是,每个 ManagedService 必须具有唯一的服务 PID,因此您不能简单地在 N 个容器中发布相同的包,除非您确保每个实例最终使用唯一的 PID。

于 2010-05-04T21:58:25.343 回答
0

你应该去看看卡拉夫酒窖。它为 OSGi 应用程序提供集群支持并跨节点同步配置更改。

于 2012-04-15T19:59:55.867 回答