1、問題敘述:
該項目配置了10來個mq,應對新開發需求,我也加了一個mq配置,然后在本地代碼當中調用,當中接受,與前面寫法相似,項目上測試環境測試。發現發送了queue之后本地消費日志沒有的bug。
處理方案:
1、檢查我的mq的配置,檢查代碼中對應mq的配置,然后重試
看不出問題出在哪里,尋找方法本地測試
2、本地測試,本地項目啟動,使用soapui調用發送queue的facade,測試成功過一次
3、測試環境再次測試,無效,懷疑mq配置有問題,重新配置,依舊無效,服務器代碼本地調試,得到的結果還是一樣
4、再次本地測試,卻沒有成功了。問人,觀察自己的mq有關的xml參數,更改並重試,依舊無效
5、再仔細排查原因,觀察q是否發送到對應的隊列,是否有消費動作,發現隊列中暫存了我所有發的q,再發現對應的消費者為null。也就是說mq沒有對應的消費者,檢查同項目其他q,發現卻有我本機作為提供者,再次檢查代碼消費者有關配置,無收獲
6、搞不定問技術大牛,拋出問題,排查問題發現是mq分配的線程數不夠,並發數*mq數量>原有的配置可分配線程數,將配置中可用線程數加大發現問題解決。
怎么看出是這個問題?
大牛沒有明說,但其實日志文件中有過提示:
給mq分配連接的過程一直很慢,甚至>5分鍾導致項目像假死一樣,不過這個在我本地出現,服務器上沒出現類似假死這個問題。原以為是網絡與環境的問題,沒有深入的思考一下,尷尬。
出現問題原因:
對rabbitMq不熟系,導致質疑自己的配置代碼編寫過多,印證花費了很多時間
對日志解讀不夠有經驗,這個多多積累
存在即是有理!