0

我在网络共享文件系统(GlusterFS)/主从配置中有 3 个 ActiveMQ 代理 - 全部在虚拟机中。
如果主服务器发生故障,客户端应该故障转移到新的主服务器。
我遇到的问题是与新主机的连接大约需要 50 秒。
这合理吗?
如何改进它?

我的客户端连接看起来像这样

failover:(tcp://a1:61616?connectionTimeout=1000,tcp://a2:61616?connectionTimeout=1000,tcp://a3:61616?connectionTimeout=1000)?randomize=false&maxReconnectDelay=10000&backup=true"

此外,当通过断开网络电缆断开主设备时,它会停止并引发有关 kahaDB(位于 GlusterFS 上)的异常,并且需要重新启动。
是否有针对此行为的解决方法,以便主代理自动重新启动或能够在网络恢复后自动连接?

4

1 回答 1

1

故障转移取决于底层文件系统释放文件锁所用的时间。

在您的情况下,NFS 集群等待 50 秒以检测到第一个节点丢失,因此释放 kahadb 文件上的锁定,然后可以由第二个节点获取。

您可以使用NFS 服务器配置文件(在 redhat/centos 系统上)中的NFSD_V4_GRACE和参数自定义此延迟。NFSD_V4_LEASE/etc/sysconfig/nfs

您还可以自定义 kahadb lockKeepAlivePeriod,参见http://activemq.apache.org/pluggable-storage-lockers.html

于 2016-10-05T09:02:27.507 回答