天天看點

記一次rabbitmq 消息不能接收故障的處理

問題

當時比較怪異,現象是通過rabbitmq 的management可以發送消息(消息内容比較小,很簡單的),但是通過代碼沒有任何報錯

但是消息就是不能看到(management 界面)

排錯處理

開始以為是代碼處理問題,但是沒有異常日志,也懷疑因為代碼釋出造成隊列錯誤造成消息寫入錯誤,我一般的此類問題的方式

就是基于arthas 觀察調用鍊(同時也可以看到輸入以及輸出)

對應spring boot amqttemplate 的處理(以下指令沒啥多大問題,因為業務比較小,可以執行運作)

watch  org.springframework.amqp.rabbit.core.RabbitTemplate  convertAndSend '{params,returnObj}' -x 5      

但是通過測試觀測,資料是正确的(輸入以及輸出,而且就是沒有一樣)說明mq 的監聽服務的協定處理是正常的

當時就有點費事了,然後登入mq 伺服器,檢視mq 日志,觀測系統的cpu 以及記憶體情況,發現都是正常的,然後習慣性的看了下磁盤

空間,很不好的是磁盤100%了,可用20多M了,問題應該就是這個了(mq 資料需要落盤,磁盤100%肯定是會有問題的)

解決

核心就是清理磁盤空間,比如日志的一些其他不需要的

造成問題的原因

複盤

參考資料