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

时间:2013-06-21 19:37:59

标签: activemq

在我的ActiveMQ客户端中,当我指定要连接的代理时,指定

之间的区别是什么
tcp://host:port

failover:(tcp://host:port)

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

希望有人有明确的答案,因为我发现的文档有点模糊。

由于

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:2)

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

failover:(tcp://host:port)?jms.useAsyncSend=true&timeout=5000

如果经纪人不可用或没有回应,timeout=5000将确保在5秒后挽救初始连接尝试。

答案 2 :(得分:1)

故障转移对于解决代理或系统故障问题并提供持久性非常有用。

  

故障切换:(TCP://主机1:端口,TCP://主机2:端口,TCP:// host3上:端口)jms.useAsyncSend =真安培;随机=假

如果你使randomize = true,那么它将同时使用所有3个代理并且randomize = false意味着一次使用一个代理,当正在运行的代理关闭时,从睡眠代理中选择任何代理。 useAsyncSend = true将以异步方式运行消息传递系统,与同步方式相比速度快。