ActiveMQ學習筆記(10)----ActiveMQ容錯的連線
1. Failover Protocol
前面講述的都是Client配置連線到指定的broker上,但是,如果Broker的連線失敗怎麼辦呢?此時,Client有兩個選項:要麼立刻死掉,要麼連線到其他的Broker上。
2. Failover Protocol的配置方式
預設的情況下,這種協議用於隨機的去選擇一個連結去連線,如果連線失敗了,那麼會連線到其他的Broker上。預設配置定義了延遲重新連線,意味著傳輸將會在10s後自動去重新連線可用的broker.當然所以有的重新連線引數都可以根據應用的需要而配置的。
3. Failover Protocol 使用示例
在客戶端程式中建立ConnectionFactory時使用:
//隨機連線不同的broker ConnectionFactory factory = new ActiveMQConnectionFacory("failover:(tcp:127.0.0.1:61616,tcp:127.0.0.1:61716)?randomize=true")
4. Failover Protocol 可用的配置引數
1. initialReconnectDelay: 在第一次嘗試重新連線之前等待的時間長度(毫秒),預設10
2. maxReconnectDelay: 最長重連時間間隔(毫秒),預設30000
3. useExponentialBackOff: 重連時間間隔是否以指數形式增長,預設true
4. backOffMultiplier:遞增倍數:預設2.0
5. maxReconnectAttempts: 預設1|0,自5.6版本開始,-1為預設值,代表不限重試次數,0標識從不重試(只嘗試連線一次,並不重連),5.6以前的版本,0為預設值,代表不重試,如果設定大於0的數,則代表最大重試次數。
6. startupMaxReconnectAttempts: 初始化時的最大重試次數,一旦連線上,將使用maxReconnectAttempts的配置,預設0
7. randomize: 使用隨機連線,以達到負載均衡的目的,預設true
8. backup: 提前初始化一個未使用的連結,以便進行快速的失敗轉移,預設false.
10. trackMessages: 設定是否快取(故障發生時)尚未傳送完成的訊息,當broker一旦重新連線成功,便將這些快取中的訊息重新整理到新連線的代理中,使得訊息可以在broker切換前後順利傳送。預設false
11. maxCacheSize: 當trackMessage啟動時,快取的最大子接,預設為127*1024bytes
12. updateURISupported:設定是否可以動態修改broker uri(自5.4版本開始),預設true.