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