我在网络共享文件系统(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上)的异常并需要重新启动。
是否存在此行为的解决方法,以便主代理自动重新启动或能够在网络恢复后自动连接?
答案 0 :(得分:1)
故障转移取决于基础文件系统释放文件锁所用的时间。
在您的情况下,NFS群集等待50秒以检测第一个节点是否丢失,因此释放了对kahadb文件的锁定,然后可以由seconde节点进行。
您可以使用NFS服务器配置文件中的NFSD_V4_GRACE
和NFSD_V4_LEASE
参数(redhat / centos系统上的/etc/sysconfig/nfs
)自定义此延迟。
您还可以自定义kahadb lockKeepAlivePeriod,请参阅http://activemq.apache.org/pluggable-storage-lockers.html