失败故障转移传输层会重新连接的任何其他已经配置好的传输之上的可用逻辑节点。
故障转移配置语法,可以指定任意数量的复合的URI。故障转移运输随机选择复合URI之一,并尝试连接的建立。如果没有成功,或者如果它随后失败,一个新的连接被建立到在所配置的列表中的URI中的可用的一个。
配置语法:
failover:(uri1,...,uriN)?transportOptions
or
failover:uri1,...,uriN
故失败障转移传输使用是在随机默认情况下,它可以让你通过的客户端,连接在一定数目的代理(Broker)之上。
传输配置选项:
选项名称 | 默认值 | 描述 |
---|---|---|
initialReconnectDelay | 10 | 首次尝试重新连接之前要等待多长时间(毫秒) |
maxReconnectDelay | 30000 | 最大重新连接会延迟多久 |
useExponentialBackOff | true | 采用指数衰减的形式尝试重连 |
reconnectDelayExponent | 2.0 | 在指数衰减的尝试中使用的指数,就是重连的次数 |
maxReconnectAttempts | -1 | 0 | 从5.6版本开始:-1是默认永远重试,0表示不重试(只尝试连接一次,但没有重试)。 |
startupMaxReconnectAttempts | -1 | 如果不为0,那么这是重新连接尝试的最大次数之前的误差被发送回客户端在第一次尝试由客户机启动的连接,一旦连接在maxReconnectAttempts选项优先。值-1表示该传输将没有限制初始连接尝试的次数。 |
randomize | true | 使用随机算法来选择将URI用于重新连接,从提供的列表中的URL |
backup | false | 初始化之后,如果进行第二次传输连接 - 立马启用快速故障转移 |
timeout | -1 | 允许超时的发送操作(以毫秒为单位),在重联过程中不会中断 |
trackMessages | false | 保持缓存的动态消息,在代理重连的时候,刷新到代理,就是发送到Broker |
maxCacheSize | 131072 | 如果启用跟踪消息,用于缓存的大小 |
updateURIsSupported | true | 确定客户端是否应接受更新从连接的代理已知的URI列表中。ActiveMQ的5.4里面新增的 |
updateURIsURL | null | 一个URL(或本地文件的路径),包含一个逗号的文本文件分隔开的URI列表中。用于重新连接在failure的情况下. ActiveMQ5.4里面新增加的, |
nested.* | null | 额外的选项添加到嵌套的网址,ActiveMQ 5.9里面新增加的 |
warnAfterReconnectAttempts | 10 | 之后每隔N次重新尝试会打印一个没有连接的警告,但是依然会重新尝试,设置为<=0来禁用。 ActiveMQ 5.10里面新增加的 |
reconnectSupported | true | 确定客户端是否应响应代理连接控制事件与重新连接(参见:rebalanceClusterClients) |
现在,您可以通过在故障转移URL选项添加选项嵌套的URL。以前,如果你想检测死连接快,你必须在wireFormat.maxInactivityDuration=1000选项添加到故障切换列表中的所有嵌套的网址。 例如:
failover:(tcp:
//host01:61616?wireFormat.maxInactivityDuration=1000,tcp://host02:61616?wireFormat.maxInactivityDuration=1000,tcp://host03:61616?wireFormat.maxInactivityDuration=1000)
在ActiveMQ5.9,可以使用以下URL现在做同样的事情:
failover:(tcp:
//host01:61616,tcp://host02:61616,tcp://host03:61616)?nested.wireFormat.maxInactivityDuration=1000
|