我正在尝试configurationApache ServiceMix 4以提供其文档中提到的负载平衡function(例如: http : //servicemix.apache.org/clustering.html )。 虽然提到了,但是我找不到如何去做的确切方法。
这个想法是有两个ServiceMixes(例如在局域网中)安装了相同的OSGi服务。 当客户端尝试使用该服务时,负载均衡器会将其带到其中一个ServiceMixes上的相应服务实例。
有没有一个简单的方法来做到这一点?
Fabric8( http://fabric8.io/ )可以做Karaf / ServiceMix集群和更多的开箱即用。 它还具有其他群集骆驼组件,如主站点和结构端点
有一个聚集的骆驼的例子,这表明
然后,客户端将在提供服务的活动节点之间进行负载平衡。 所以,如果你有5个节点,那么它们之间的平衡。 如果其中一个节点死亡或停止等,那么它只是在4个仍然活动的节点之间进行平衡。 所以解决方案是完全弹性和可扩展的。
原理如下图所示:
我没有分布式OSGi的经验,所以我只会谈论基于JMS的集群解决方案。
这是一个很好的ServiceMix 4 JBI集群示例(请相信他必须关闭conduitSubscriptions …): http ://trenaman.blogspot.com/2010/04/four-things-you-need-to- 知道-约-new.html
这也很重要:trenaman.blogspot.com/2009/03/new-jms-flow-in-servicemix-4.html
名称“JBI集群”建议您应该使用这种机制来集中您的应用程序,但是在大多数情况下,最好使用简单的JMS端点来实现集群功能。 如果你完全可以避免JBI,这是尤其如此。
我还没有达到我的项目的这个阶段,所以我没有经验与工作, 但是Karaf有一个围绕分布式OSGi设计的子项目Cellar 。