2011-12-29 52 views
7

我们正在考虑在我们的企业环境中使用分布式OSGi。
我们将有以下设置:在许多主机上分布式OSGi - 跨所有容器管理包的正确方法是什么?

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

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

几个要求:

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

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

最好的问候, 马顿

+0

是否所有这些OSGi容器都构建一个大的分布式OSGi容器,其中主机X上的服务A可以在主机Y上使用服务B,就像它将在同一主机X上一样?或者它们是相互分离的,而您只有10-100个OSGi容器需要维护?它们和10-100个OSGi容器都是一样的,它们有完全相同的包,并且你想同时向所有这些OSGi容器发送命令(比如“安装”)?或者他们不同,主机X有一个OSGi容器与N捆绑和主机Y上的OSGi容器有一组不同的捆绑? – Progman 2011-12-29 14:42:45

+0

这是一个大的分布式OSGi环境:主机X上的服务A可以使用主机Y上的服务B.每个容器可能有不同的一组软件包。谢谢! – 2011-12-29 15:35:12

+0

我会尝试使用Apache Karaf构建这样的系统(因为它提供了简单的方法来自动执行命令并轻松管理捆绑包)。我将使用一个共享包存储来设置它,所以无论何时更新一个包,所有运行时都会将其提取出来。 Karaf被设计为支持从脚本执行命令,所以编写所需的脚本并不难,它将管理系统。但是,您不会得到分布式事务。在某些时候,会有版本不匹配,我不认为目前有解决方案。 – 2011-12-30 08:16:04

回答

2

在管理大量束而言,看Karaf特点 - 它们大大简化处理很大程度上束的套房。

对于事物的分布式,请看看Karaf子项目Cellar,它使用HazelCast对Karaf进行聚类(并通过特征机制安装在Karaf中)。

7

您可能想了解更多适用于云环境的“受管理”解决方案:Apache ACE或其更大的兄弟Amdatu

Apache ACE将单个OSGi容器转换为可以从单一管理点控制状态的受管容器。 Amdatu是一个更完整的框架,其中包括用于供应的ACE,但增加了水平功能。

+0

请注意,Apache ACE刚刚作为顶级Apache项目毕业,所以链接(仍在孵化器空间中)可能无法长时间有效。 – 2011-12-30 13:34:48

+1

链接将保持有效,并简单地重定向到新位置。 – 2012-05-26 09:17:25

2

如果您认真对待企业就绪 - 意思是“健壮” - 分布式OSGi运行时 - 然后看看Paremus服务结构。自2005年以来,我们一直在这样做:)

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

Service Fabric消息背板利用DDS消息协议 - IMO是分布式OSGi的天然合作伙伴。Paremus RSA(远程服务实施)是该标准的无尘室实施 - 这是非常强大,重量轻,并允许协议和分发提供商的动态插入能力。默认的发现提供者 - 又是DDS。

最后 - 和服务结构开箱即用。

+0

以下链接可能是有趣的 - http://www.slideshare.net/mfrancis/the-dawn-of-composite-clouds-why-osgi-is-the-most-important-ingredient-in-the-next -Generation-of-Java-compute-cloud-richard-nicholson&http://www.slideshare.net/mfrancis/cloud-osgi-the-dawn-of-composite-clouds&and a little more abstract presentation http:/ /www.slideshare.net/mfrancis/complexity-components-clouds-paremus – Richard 2012-01-06 10:07:07

1

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

对分布式服务的支持是not available out-of-the box。 ECF需要手动集成。

+0

截至2016年4月,似乎工作只能在服务器上进行http://git.eclipse.org/c/gyrex/ – 2016-04-12 02:36:53

+0

所有代码已合并到一个单一的Git存储库,便于维护。 – Gunnar 2016-04-12 18:12:07

相关问题