4

我正在尝试配置 Apache ServiceMix 4 以提供其文档中提到的负载平衡功能(例如这里:http ://servicemix.apache.org/clustering.html )。尽管提到了,但我找不到确切的方法。

这个想法是让 2 个 ServiceMixes(例如在 LAN 中)安装相同的 OSGi 服务。当客户端尝试使用该服务时,负载均衡器会将他带到其中一个 ServiceMixes 上的适当服务实例。

有没有简单的方法可以做到这一点?

4

3 回答 3

4

Fabric8 ( http://fabric8.io/ ) 可以进行 Karaf/ServiceMix 集群以及更多开箱即用的功能。它还具有其他集群 Camel 组件,例如主节点和结构端点

有一个聚集的骆驼示例,证明了

然后,客户端将在提供服务的活动节点之间进行负载平衡。因此,如果您有 5 个节点,那么它会在这些节点之间保持平衡。如果其中一个节点死亡或停止等,那么它只是在 4 个仍然活动的节点之间保持平衡。因此,该解决方案是完全弹性和可扩展的。

原理如下图所示:

在此处输入图像描述

于 2014-09-03T08:07:57.377 回答
2

我没有分布式 OSGi 的经验,所以我只会讨论基于 JMS 的集群解决方案。

这是一个很好的 ServiceMix 4 JBI 集群示例(请相信他,您必须关闭管道订阅...): 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,则尤其如此。

于 2010-12-16T18:25:41.877 回答
0

我还没有达到我的项目的这个阶段,所以我没有使用它的经验;但 Karaf 有一个围绕分布式 OSGi 设计的子项目Cellar

于 2012-01-17T22:08:02.023 回答