?
1.故障重啟恢復順序:
?? 首先停止Slave,再停止Master;同步最新數據;先重啟Master,再重啟Slave;查看控制臺確保相關的客戶端連接進來
2.控制臺操作:
?? 所有的操作都在Master上進行;Slave上只能進行查看消息的統計數量操作,確保Slave正常;消息隊列查看,訂閱發布關系等等都在Master上進行
3.死信隊列:
?? 為每個隊列啟用單獨的死信隊列,便于數據后續的恢復處理
4.Master配置waitForSlave=true,防止啟動后與Slave數據不一致:
?? 初次啟動Master,不會提供服務,客戶端發送消息會報錯;
?? 當Slave啟動連上Master后,Master提供正常服務,客戶端能正常發送消費消息;
?? 當Slave故障斷開后,Master也能正常提供服務。
5.Broker名稱要求
?? 使用Java的變量命名規范,否則當broker名稱中出現特殊字符,如”:”時,會出現莫名問題,borker會無法啟動。
6.JMX遠程連接問題
?? 目前在linux下java rmi存在hostname問題,所以必須在啟動腳本中(bin/activemq)添加JVM參數:-Djava.rmi.server.hostname=IP
7.網絡不好和CPU高負載對Failover的影響
?? 采用Master/Slave和Failover協議方式,客戶端Failover會做心跳檢查,由于客戶端網絡環境不好或者其他應用造成CPU高負載,誤判斷Master不可用了,自動切換到Slave
?? 由于Master和Slave通常部署在相近的環境里面,他們之間的網絡沒有太多問題,Slave并不認為Master有故障,因此Slave沒有提升為Master
?? 這個時候客戶端就會出現異常,Slave的連接不能發送和消費消息
?? 開發環境可以采用只連接Master來解決,方便開發,到線上再切換成Failover協議,另外對同一個MQ最好公用相同的連接
?? 心跳檢查的參數maxInactivityDuration,默認30秒,failover:(tcp://localhost:61616?wireFormat.maxInactivityDuration=30000)
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
