3

对于 ActiveMq,无共享部署如下:

在此处输入图像描述

简而言之,当主人倒下时,一个奴隶就会被提升为主人。但我不知道:

1、谁负责判断master是否宕机,决定提升哪个slave?因为主人自己已经下来了。客户有责任吗?如何?2、哪个slave应该提升为master?任何人?

4

1 回答 1

4

对于无共享(纯主从)设置,

从从站到主站建立了主站连接。此连接同步主代理的状态。如果从从站到主站的网络主站(同步)连接断开,即使是很短的时间,从站代理将停止侦听复制并启动它自己的连接器(网络和客户端连接器)。

同时,如果与客户端的连接也断开了(即主服务器实际上失败、崩溃、硬件中断、网络中断等),那么客户端将重新连接到从服务器并继续在那里。

也就是说,如果已在客户端设置中配置:failover://(tcp://masterhost:61616,tcp://slavehost:61616)?randomize=false

这意味着几件事

  • 只能将一个从属连接到主控
  • 从站不会“提升”为主站 - 如果主站出现故障,它只是作为独立代理运行。
  • 如果主服务器在短暂中断后重新上线,它将继续作为独立代理与从服务器并肩运行,并且设置可能会变得不同步。恢复有点痛苦,而且是手动的——即关闭每个代理,手动按文件复制运行时数据并重新启动它们。请注意,失败的主代理将不会重新连接到从属并自动成为新的从属。

因此,shared nothing 状态主要在主从之间的网络连接非常稳定且每个节点的宕机时间非常短(即一年左右发生几次硬件故障的保护)时可用。

如果可能,我会使用其他一些故障转移方法,共享磁盘、master+master 等。

于 2012-08-10T11:06:58.317 回答