JMS群集:主动/被动

时间:2013-01-09 07:00:39

标签: java jms

我们托管具有独立群集JMS服务器的群集应用程序服务器。当JMS服务器处于主动/被动(共享存储)并使用OS群集时,应用程序服务器处于主动/主动和负载平衡状态。这意味着从客户端的角度来看,每个端点只有一个端点。

现在我们的任务是连接到外部JMS集群(主动/被动),但似乎他们希望我们在JMS客户端中实现故障转移,换句话说:如果可能,连接到主服务器,故障转移到辅助服务器如有必要。

冒着听起来无知的风险,我从未见过这样的设置,但是一些谷歌搜索似乎表明这似乎或多或少是JMS的标准做法。

我的问题是:为什么JMS提供商似乎更喜欢“客户端群集”,如果你不喜欢传统的负载平衡或其他服务器端群集方法?它确实是行业标准吗?

2 个答案:

答案 0 :(得分:1)

现在我使用MySQL Cluster运行多个Open MQ,请参阅此链接(http://mq.java.net/OpenMQ_MySQLCluster_Setup_Guide.html)

对于此服务器拓扑,您可以连接到任何节点(代理1,代理2),如果您在EJB容器上运行just config(取决于您使用的中间层),当某个节点死亡时,它将自动按容器切换。

答案 1 :(得分:0)

我只使用JMS的主动/主动群集,其中两台服务器都获取每条消息(它们相互通信以保持同步)。他们没有共享磁盘子系统,因为他们在不同的数据中心。客户端配置有两台服务器,但它一次只连接一台服务器。 (通常是本地JMS服务器)故障转移对客户端是透明的。

我还看到了两个本地服务器和一个非本地服务器的配置,因此一台服务器的故障不需要通过WAN连接到另一个数据中心。我自己没有设置这样的配置。

对于系统管理员来说,使用共享存储听起来很酷,但缺点是它对软件不太透明。如果你有一个应用程序支持自己的故障转移,这是更好的恕我直言。即如果服务没有进行故障转移,我只会使用共享存储。