1. 程式人生 > >ActiveMQ學習筆記(10)----ActiveMQ容錯的連線

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.