Activemq 容錯鏈接

Failover Protocol
前面講述的都是Client配置鏈接到指定的broker上。但是,如果Broker的鏈接失敗怎麼辦呢?此時,Client有兩個選項:要麼立刻死掉,要麼去連接到其它的broker上。
Failover協議實現了自動重新鏈接的邏輯。這裏有兩種方式提供了穩定的brokers列表對於Client鏈接。第一種方式:提供一個static的可用的Brokers列表。第二種方式:提供一個dynamic 發現的可用Brokers。
Failover Protocol 的配置方式
failover:(uri1,...,uriN)?key=value 或者 failover:uri1,...,uriN
Failover Protocol 的默認配置
默認情況下,這種協議用於隨機的去選擇一個鏈接去鏈接,如果鏈接失敗了,那麼會鏈接到其他的Broker上。默認的配置定義了延遲重新鏈接,意味着傳輸將會在10秒後自動的去重新鏈接可用的broker。當然所有的重新鏈接參數都可以根據應用的需要而配置。
Failover Protocol 的使用示例,在客戶端程序裏面:
ConnectionFactory connectionFactory = new

ActiveMQConnectionFactory("failover:(tcp://192.168.1.106:61679,tcp://192.168.1.106:61819)?randomize=false");

randomize爲false,則會按順序就行broker鏈接,但是這樣會造成第一臺broker壓力過大

 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
9:timeout:設置發送操作的超時時間(毫秒),默認-1
10:trackMessages:設置是否緩存[故障發生時]尚未傳送完成的消息,當broker一旦重新連接成功,便將這些緩存中的消息刷新到新連接的代理中,使得消息可以在broker切換前後順利傳送,默認false
11:maxCacheSize:當trackMessages啓用時,緩存的最大字節,默認爲128*1024bytes
12:updateURIsSupported:設定是否可以動態修改broker uri(自版本5.4起),默認true
發佈了56 篇原創文章 · 獲贊 4 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章