我正在寻找能够解决服务集群/分发方面的现有中间件解决方案,以实现负载平衡和可用性。我正在考虑基于消息传递系统(更具体地说,JMS)为此构建我自己的基础结构。但是,如果可能的话,我宁愿使用已经存在的东西。
系统应该能够在许多计算机上运行各种服务。根据服务描述,系统应该能够确定要在群集中启动的特定服务的实例数。根据待处理的服务请求,它应动态调整运行的服务数量。系统也应该处理监视服务和部署新版本的服务。
通过服务,我的意思是“具有预定义接口的独立功能单元”。客户端只知道接口,中间件应该注意确保服务在足够的节点上运行,以便回答通过接口发出的传入请求。
应该是与Java完美集成的东西。我的一些服务是作为本机代码实现的,但我有一个很好的解决方案,可以将它们包装到基于Java的服务中。
我已经查看了一些中间件/ ESB解决方案,例如ICE和Mule,但我没有找到它们来解决我上面描述的动态负载服务配置方面(如果在所有)。所以我想知道还有什么可能会有人在这里推荐一下......
答案 0 :(得分:1)
我建议你深入了解OSGi:
作为最后一点,您可以查看Paremus Service Fabric - 从描述中听起来与您尝试构建的野兽非常相似(除了它使用JINI而不是JMS) 。如果不出意外,它可能是灵感的来源。
他们过去也有一个名为Newton的开源版本,但由于缺乏兴趣而被关闭。以mentioned为例,它以Service Fabric社区版的名义存在,但我目前在他们的网站上找不到任何引用(很可能只是cancelled)。
最后,这是另一个灵感项目:Bundle-Bee - transparent, grid-distributed OSGi computing。很可能那里有更多类似的项目。