溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何排查rocketmq錯(cuò)誤遷移導(dǎo)致的問題

發(fā)布時(shí)間:2021-12-17 14:37:58 來源:億速云 閱讀:141 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下如何排查rocketmq錯(cuò)誤遷移導(dǎo)致的問題,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

  由于測(cè)試環(huán)境機(jī)器老化,導(dǎo)致測(cè)試環(huán)境rocketmq集群有臺(tái)機(jī)器關(guān)機(jī)了(那臺(tái)機(jī)器有一個(gè)namesrv、一個(gè)master、一個(gè)另外的slave),后來起來了,運(yùn)維告訴我們那臺(tái)集群可能隨時(shí)要壞,建議把里面的東西遷移,后來商量給了一臺(tái)新的測(cè)試環(huán)境,第一次遷移rocketmq,想的簡(jiǎn)單了,導(dǎo)致了這次rocketmq錯(cuò)誤遷移導(dǎo)致問題排查。

  問題原因

  

  由于操作的時(shí)候僅僅復(fù)制了rocketmq的部署包,但是配置文件位置并不在rocketmq部署包里面,所以導(dǎo)致下面出現(xiàn)的一些問題。

  如何排查rocketmq錯(cuò)誤遷移導(dǎo)致的問題

  配置類似這樣的,路徑單獨(dú)指定了,和原來的部署包并不在一起,以后如何需要遷移rocketmq機(jī)器,記得把這些配置相關(guān)的文件都拷貝過去,啟動(dòng)的時(shí)候會(huì)自動(dòng)讀取的,雖然現(xiàn)在這個(gè)結(jié)論看起來很簡(jiǎn)單,但是從topic那塊看出有點(diǎn)問題的時(shí)候,還是疑惑了一會(huì)會(huì)才想到,下面看看一步一步步驟吧。

  

  遷移操作

  

  我的做法是這樣的:把原來要壞的機(jī)器上面的rocketmq部署的安裝包拷貝到新機(jī)器,之后修改新機(jī)器的hosts之后命令啟動(dòng),通過命令查看集群起來了。之后我修改集群里面另外的一臺(tái)集群的hosts把里面的原來指向快壞的機(jī)器修改為新的機(jī)器地址過了一段時(shí)間之后也重啟了。

  

  假如原來hosts為:

  如何排查rocketmq錯(cuò)誤遷移導(dǎo)致的問題

        現(xiàn)在修改為:

        如何排查rocketmq錯(cuò)誤遷移導(dǎo)致的問題

  備注: 配置hosts唯一好處是,下次換機(jī)器,只需要修改hosts文件即可,不需要在修改rocketmq配置文件了。

  


  

  問題現(xiàn)象

  

  現(xiàn)象1:

  

  應(yīng)該是:

  如何排查rocketmq錯(cuò)誤遷移導(dǎo)致的問題

  實(shí)際變成了:

  如何排查rocketmq錯(cuò)誤遷移導(dǎo)致的問題

  現(xiàn)象2:

  

  topic的隊(duì)列情況應(yīng)該是:

  如何排查rocketmq錯(cuò)誤遷移導(dǎo)致的問題

  實(shí)際上 有的topic變成了:

  如何排查rocketmq錯(cuò)誤遷移導(dǎo)致的問題

  有的topic隊(duì)列變成了只有:

  如何排查rocketmq錯(cuò)誤遷移導(dǎo)致的問題

  剛剛看到這個(gè)現(xiàn)象的時(shí)候很奇怪,為什么會(huì)這樣呢?

  

  分析

  

  把新加一臺(tái)機(jī)器思路整理了下,到底做了什么,由于新遷移機(jī)器原來的一些配置topics.json,subscriptionGroup.json等信息都沒有,由于2臺(tái)機(jī)器先后都重啟了。

  

  

     假如原來hosts為:

  如何排查rocketmq錯(cuò)誤遷移導(dǎo)致的問題

        現(xiàn)在修改為:

        如何排查rocketmq錯(cuò)誤遷移導(dǎo)致的問題


  由于新的機(jī)器已經(jīng)啟動(dòng),并且沒有任何的topic信息,這個(gè)時(shí)候客戶端(發(fā)送端所在的業(yè)務(wù))也重啟了,并且連接到了新的機(jī)器的namesrv上面,由于這個(gè)上面并沒有topic任何相關(guān)信息,這個(gè)時(shí)候發(fā)送端業(yè)務(wù)需要發(fā)送消息,剛剛巧發(fā)送到新的機(jī)器獲取getTopicRouteInfo,沒有獲取到信息,走默認(rèn)topicTBW102,由于默認(rèn)的讀寫隊(duì)列為4,而另外一臺(tái)機(jī)器有該topic信息所以是8,就導(dǎo)致了其中的一個(gè)問題。

  

  所以出現(xiàn)了這種情況:

  如何排查rocketmq錯(cuò)誤遷移導(dǎo)致的問題

  另外一個(gè)現(xiàn)象是,客戶端并沒有發(fā)送數(shù)據(jù)操作,而另外一臺(tái)機(jī)器內(nèi)容也都重啟了,由于broker會(huì)定時(shí)上報(bào)到namesrv(只有原來有的broker會(huì)上報(bào),新的沒有該topic信息上報(bào)),其實(shí)就在2個(gè)namesrv里面都僅僅注冊(cè)了一個(gè)(topic其中就只有一個(gè)broker信息),后續(xù)發(fā)送獲取getTopicRouteInfo,就只能獲取一個(gè),所以另外一臺(tái)就沒有任何信息了。

  如何排查rocketmq錯(cuò)誤遷移導(dǎo)致的問題

  也就是這個(gè)情況了。

  如何排查rocketmq錯(cuò)誤遷移導(dǎo)致的問題

  這個(gè)現(xiàn)象就解釋完了。

  如何排查rocketmq錯(cuò)誤遷移導(dǎo)致的問題

  **備注:**由于測(cè)試環(huán)境操作的可能性(和不太確定性,測(cè)試環(huán)境很多,很多人什么時(shí)候操作我根本不知道),只是個(gè)人推測(cè)情況,并且也能解釋上面現(xiàn)象,如何有疑問或者哪里不對(duì)歡迎一起討論。

  

  處理

  

  把原來快壞的機(jī)器上面的相應(yīng)配置拷貝到新的機(jī)器即可(按照道理數(shù)據(jù)問題也應(yīng)該拷貝的,但是新的已經(jīng)入數(shù)據(jù)了,在拷貝就亂了),重啟,現(xiàn)象正常。

  

  備注: 遷移需要注意,不是服務(wù)啟動(dòng)起來就行了,應(yīng)該把運(yùn)行的一些配置數(shù)據(jù)啥的都拷貝過去才行。

看完了這篇文章,相信你對(duì)“如何排查rocketmq錯(cuò)誤遷移導(dǎo)致的問題”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI