RabbitMQ Connection Blocked

1.問題排查


某服務(wù)端應(yīng)用性能測試,時刻A后陷入假死狀態(tài),不對外提供服務(wù)。體現(xiàn)為:

  1. A時刻后,系統(tǒng)資源消耗下跌:
    1.1 CPU占用率下降。
    1.2 磁盤與網(wǎng)絡(luò)IO下降。
    1.3 內(nèi)存占用率下降。
  2. Dump應(yīng)用JVM,業(yè)務(wù)線程均被RabbitMQ客戶端阻塞。
  3. RabbitMQ服務(wù)器消息堆積,隊(duì)列狀態(tài)為Block。

根據(jù)以上特征,初步推測RabbitMQ服務(wù)端出于某種策略,阻塞了RabbitMQ客戶端繼續(xù)寫入消息,進(jìn)而阻塞了同步調(diào)用RabbitMQ客戶端的應(yīng)用線程。
當(dāng)服務(wù)器(TOMCAT)線程池完全阻塞后,應(yīng)用體現(xiàn)為不對外服務(wù)且系統(tǒng)資源消耗驟降。

2.什么是RabbitMQ-Connection-Blocked,如何在應(yīng)用程序中處理該場景?


Blocked Connection Notifications

3.思考

延伸來看,作為開發(fā)者,選擇中間件時,不僅要觀察它能解決什么問題,還要考慮引入它帶來的代價與風(fēng)險。例如本文所遭遇的場景,高壓環(huán)境下,RabbitMQ出于自身保護(hù)策略,通過阻塞方式限制寫入,導(dǎo)致了生產(chǎn)者應(yīng)用“假死”,不對外服務(wù)。在未深入理解此類問題,并開發(fā)代碼進(jìn)行降級保護(hù)前,就有可能引發(fā)線上事故,影響到用戶實(shí)際體驗(yàn),造成不可挽回的損失。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評論 19 139
  • 本文章翻譯自http://www.rabbitmq.com/api-guide.html,并沒有及時更新。 術(shù)語對...
    joyenlee閱讀 7,799評論 0 3
  • Yum安裝RabbitMQ3.6.11與Erlange20配置及優(yōu)化 RabbitMQ簡介 AMQP,即Advan...
    三杯水Plus閱讀 4,688評論 0 7
  • 來源 RabbitMQ是用Erlang實(shí)現(xiàn)的一個高并發(fā)高可靠AMQP消息隊(duì)列服務(wù)器。支持消息的持久化、事務(wù)、擁塞控...
    jiangmo閱讀 10,505評論 2 34
  • 因?yàn)樽x莎劇知道了朱生豪先生,因?yàn)檫@一個名字買了一本《朱生豪情書全集》。 百度詞條上對于“情書”的定義是“男女間談情...
    筱阿誠閱讀 601評論 2 0

友情鏈接更多精彩內(nèi)容