7

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

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

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

几个要求:

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

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

最好的问候,马顿

4

4 回答 4

7

您可能想看看为类似云的环境制作的更多“托管”解决方案:Apache ACE或其大哥Amdatu

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

于 2011-12-30T13:21:45.780 回答
3

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

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

于 2011-12-30T09:11:02.440 回答
2

如果您认真对待企业就绪——意思是“健壮的”——分布式 OSGi 运行时——那么看看 Paremus Service Fabric。自 2005 年以来,我们一直在这样做 :)

Service Fabric 的供应/管理架构具有极强的可扩展性(>> 1,000 个容器)、响应迅速且稳定!多年的开发和商业运行时经验支持该产品。Service Fabric 体系结构支持多个基于 OSGi 的并发分布式应用程序。Service Fabric 的架构以 OBR 为中心;我们的首席工程师负责最近的 OSGi 联盟 OBR 规范活动。

Service Fabric 消息背板利用 DDS 消息传递协议 - IMO 是分布式 OSGi 的天然合作伙伴。Paremus RSA(远程服务实施)是该标准的洁净室实施 - 它高度稳健、重量轻,并允许协议和分发提供商的动态插入能力。默认发现提供程序 - 再次是 DDS。

最后 - Service Fabric 开箱即用。

于 2012-01-06T09:24:48.130 回答
1

Gyrex 中,我们使用 p2 在集群的不同节点之间分发包。可以通过使用节点标签和 LDAP 过滤器表达式(在 OSGi 中很常见)来控制应将哪些捆绑供应给哪个节点。例如,可以仅在 Web 节点上安装(和激活)Web 包。

对分布式服务的支持不是开箱即用的。ECF 需要手动集成。

于 2012-06-25T09:42:30.170 回答