ActiveMQ故障转移协议在重新启动后未重新连接到主机

ActiveMQ故障转移协议在重新启动后未重新连接到主机,activemq,Activemq,我使用的是ActiveMQ 5.4版,我有一个。我的从机配置为在发生故障时启动其网络传输连接器。我的客户端是使用故障切换协议配置的,正如文档中所说: failover://(tcp://masterhost:61616,tcp://slavehost:61616)?randomize=false 当我的主人死后,客户成功地将故障转移到了奴隶身上。问题是,在我恢复(即停止从机、复制数据、重新启动主机,然后重新启动从机)后,客户端仍在尝试连接到从机(此时没有任何打开的网络连接器)。因此,客户机在重

我使用的是ActiveMQ 5.4版,我有一个。我的从机配置为在发生故障时启动其网络传输连接器。我的客户端是使用故障切换协议配置的,正如文档中所说:

failover://(tcp://masterhost:61616,tcp://slavehost:61616)?randomize=false

当我的主人死后,客户成功地将故障转移到了奴隶身上。问题是,在我恢复(即停止从机、复制数据、重新启动主机,然后重新启动从机)后,客户端仍在尝试连接到从机(此时没有任何打开的网络连接器)。因此,客户机在重新启动主机后不会重新连接到主机。这就是它的工作原理吗?

我也看到了。如果正在使用,请通过设置池连接的过期超时。此处的API文档表明,这将强制重新连接到主代理:

允许连接过期,而不考虑负载或空闲时间。这对于故障切换非常有用,可以强制从池重新连接,重新建立负载平衡或使用主恢复后恢复


我也看过这个。如果正在使用,请通过设置池连接的过期超时。此处的API文档表明,这将强制重新连接到主代理:

允许连接过期,而不考虑负载或空闲时间。这对于故障切换非常有用,可以强制从池重新连接,重新建立负载平衡或使用主恢复后恢复


谢谢我检查了我的配置,它看起来不像是在使用PooledConnectionFactory,尽管它确实提出了一个好的观点:我需要查看客户端的配置,看看是否会发生与您提到的类似的事情。@Kyle如果您使用的是Spring JmsTemplate,缓存连接和会话是必不可少的,或者,几乎可以肯定的是,您正在为发送或接收的每条消息创建和关闭连接。解释了陷阱。您应该使用PooledConnectionFactory,或者将您的ConnectionFactory包装为一个。谢谢。我检查了我的配置,它看起来不像是在使用PooledConnectionFactory,尽管它确实提出了一个好的观点:我需要查看客户端的配置,看看是否会发生与您提到的类似的事情。@Kyle如果您使用的是Spring JmsTemplate,缓存连接和会话是必不可少的,或者,几乎可以肯定的是,您正在为发送或接收的每条消息创建和关闭连接。解释了陷阱。您应该使用PooledConnectionFactory,或者将您的ConnectionFactory包装到。