【问题标题】:What good middleware solutions are there for clustered/distributed services集群/分布式服务有哪些好的中间件解决方案
【发布时间】:2010-10-14 13:42:06
【问题描述】:

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

系统应该能够在多台计算机上运行各种服务。根据服务描述,系统应该能够计算出在集群中启动了多少特定服务的实例。根据挂起的服务请求,它应该动态调整正在运行的服务数量。监控服务和部署新版本的服务也应该由系统来处理。

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

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

我查看了一些中间件/ESB 解决方案,例如 ICEMule,但我没有发现它们可以很好地解决我上面描述的动态负载服务供应方面的问题(如果有的话)。所以我想知道还有什么其他人想要推荐看看的……

【问题讨论】:

    标签: java distributed-computing middleware


    【解决方案1】:

    我建议您深入研究 OSGi:

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

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

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

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

    【讨论】:

    • 很好的信息。基于 OSGi 的方法非常有趣,我已经在考虑使用 OSGi 来构建服务容器,所以这可能非常适合。谢谢!
    • 如果这回答了您的问题,是否也接受我的回答? ;-) 另见:stackoverflow.com/faq#howtoask
    猜你喜欢
    • 1970-01-01
    • 2010-11-06
    • 2012-11-20
    • 1970-01-01
    • 2011-09-12
    • 1970-01-01
    • 2010-09-08
    • 1970-01-01
    • 2010-10-06
    相关资源
    最近更新 更多