集群/分布式服务有哪些优秀的中间件解决方案

时间:2010-10-14 13:42:07

标签: java distributed-computing middleware

我正在寻找能够解决服务集群/分发方面的现有中间件解决方案,以实现负载平衡和可用性。我正在考虑基于消息传递系统(更具体地说,JMS)为此构建我自己的基础结构。但是,如果可能的话,我宁愿使用已经存在的东西。

系统应该能够在许多计算机上运行各种服务。根据服务描述,系统应该能够确定要在群集中启动的特定服务的实例数。根据待处理的服务请求,它应动态调整运行的服务数量。系统也应该处理监视服务和部署新版本的服务。

通过服务,我的意思是“具有预定义接口的独立功能单元”。客户端只知道接口,中间件应该注意确保服务在足够的节点上运行,以便回答通过接口发出的传入请求。

应该是与Java完美集成的东西。我的一些服务是作为本机代码实现的,但我有一个很好的解决方案,可以将它们包装到基于Java的服务中。

我已经查看了一些中间件/ ESB解决方案,例如ICEMule,但我没有找到它们来解决我上面描述的动态负载服务配置方面(如果在所有)。所以我想知道还有什么可能会有人在这里推荐一下......

1 个答案:

答案 0 :(得分:1)

我建议你深入了解OSGi:

  • 它有一个相当动态的模块系统,允许您通过网络漫游您的服务
  • 现有的开源产品可以构建:Eclipse EquinoxVirgo,Apache FelixKarafKnopflerfishConciergeGlassfish 3等(comparison
  • 对于远程处理方面,OSGi 4.2具有远程服务规范,其中有多个实现。更值得注意的是,ECF似乎是一个可以满足您需求的实现,如果您想使用JMS(article on dzone)。

作为最后一点,您可以查看Paremus Service Fabric - 从描述中听起来与您尝试构建的野兽非常相似(除了它使用JINI而不是JMS) 。如果不出意外,它可能是灵感的来源。

他们过去也有一个名为Newton的开源版本,但由于缺乏兴趣而被关闭。以mentioned为例,它以Service Fabric社区版的名义存在,但我目前在他们的网站上找不到任何引用(很可能只是cancelled)。

最后,这是另一个灵感项目:Bundle-Bee - transparent, grid-distributed OSGi computing。很可能那里有更多类似的项目。