故障转移传输对单个URI执行什么操作

mat*_*ell 5 activemq-classic

在我的ActiveMQ客户端中,当我指定要连接的代理时,指定之间有什么区别

tcp://host:port
Run Code Online (Sandbox Code Playgroud)

failover:(tcp://host:port)
Run Code Online (Sandbox Code Playgroud)

我已经尝试停止并启动代理,在这两种情况下,客户端在重新启动时再次找到代理.我还没有尝试使用流中的消息(我正在使用队列)或其他网络故障,看看是否存在差异.

希望有人有一个确定的答案,因为我发现的文档有点模糊.

谢谢

Hir*_*ino 5

如果使用故障转移,则当您断开与服务器的连接时,客户端库将进入重新连接循环.网络故障将从您的应用中隐藏.如果您不使用故障转移,那么当您断开连接时,您的应用程序将收到JMS错误,告知您丢失了连接.


anu*_*ava 2

故障转移协议还允许您提供一些有用的连接参数。例如:

failover:(tcp://host:port)?jms.useAsyncSend=true&timeout=5000
Run Code Online (Sandbox Code Playgroud)

如果代理不可用或没有响应,这里timeout=5000将确保在 5 秒后退出初始连接尝试。