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

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