成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

MQ消費端遇到瓶頸除了橫向擴容外還有其他解決辦法?

開發 前端
金三銀四招聘季,一位粉絲朋友最近在螞蟻金服第二輪面試時遇到這樣一個問題:如果MQ消費遇到瓶頸時該如何處理?。

[[388282]]

1、面試場景與面試技巧

金三銀四招聘季,一位粉絲朋友最近在螞蟻金服第二輪面試時遇到這樣一個問題:如果MQ消費遇到瓶頸時該如何處理?。

橫向擴容,相比很多讀者與我這位朋友一樣會脫口而出,面試官顯然不會滿意這樣的回答,然后追問道:橫向擴容是堆機器,還有沒有其他辦法呢?

在面試過程中,個人建議大家在聽到問題后稍作思考,不要立馬給出太直接的答案,而是應該與面試官進行探討,一方面可更深刻的理解面試官的出題初衷,同時可以給自己梳理一下思路。

消費端遇到瓶頸,這是一個結果,但引起這個結果的原因是什么呢?在沒有弄清楚原因之前談優化、解決方案都會顯得很蒼白。

在這樣的面試場景中,我們該如何探討交流呢?我的思路如下:

  • 嘗試與面試官探討如何判斷消費端遇到瓶頸
  • 如何查找根因
  • 提出解決方案

溫馨提示:為了本文觀點的嚴謹性,本文主要以RocketMQ為例進行剖析。

2、如何判斷消費端遇到瓶頸

在RocketMQ消費領域中判斷消費端遇到瓶頸通常有兩個重要的指標:

  • 消息積壓數量(延遲數量)
  • lastConsumeTime

在開源版本的控制臺rocketmq-console界面中,可以查閱一個消費端上述兩個指標,如下圖所示:

  • Delay:消息積壓數量,即消費端還剩下多少消息未處理,該值越大,說明消費端遇到瓶頸了。
  • LastConsumeTime:表示上一次成功消費的消息的存儲時間,該值離當前時間越大,同樣能說明消費端遇到瓶頸了。

那為什么會積壓呢?消費端是在哪遇到瓶頸了呢?

3、如何定位問題

消費端出現瓶頸,如何識別是客戶端的問題還是服務端的問題,一個最簡單的辦法是看集群內其他消費組是否也有積壓,特別是和有問題的消費組訂閱同一個主題的其他消費組是否有積壓,按照筆者的經驗,出現消息積壓通常是客戶端的問題,可以通過查詢 rocketmq_client.log加以證明:

  1. grep "flow" rocketmq_client.log 

出現so do flow control 這樣的日志,說明觸發了消費的限流,其直接觸發原因:就是消息消費端積壓消息,即消費端無法消費已拉取的消息,為了避免內存泄露,RocketMQ在消費端沒有將消息處理完成后,不會繼續向服務端拉取消息,并打印上述日志。

那如何定位消費端慢在哪呢?是卡在哪行代碼呢?

通常的排查方法是跟蹤線程棧,即利用jstack命令查看線程運行情況,以此來探究線程的運行情況。

通常使用的命令如下:

  1. ps -ef | grep java 
  2. jstack pid > j1.log 

通常為了對比,我一般會連續打印5個文件,從而可以在5個文件中查看同一個消費者線程,其狀態是否變化,如果未變化,則說明該線程卡主,那就是我們重點需要關注的地方。

在RocketMQ中,消費端線程以ConsumeMessageThread_開頭,通過對線程的判斷,如下代碼讓人為之興奮:

消費端線程的狀態是RUNNABLE,但在5個文件中其狀態都是一樣,基本可以斷定線程卡在具體的代碼,從示例代碼中是卡在掉一個外部的http借口,從而加以解決,通常在涉及外部調用,特別是http調用,可以設置一個超時時間,避免長時間等待。

4、解決方案

其實根據第三步驟,大概率能明確是哪個地方慢,遇到了性能瓶頸,通常無非就是調第三方服務,數據庫等問題出現了瓶頸,然后對癥下藥。數據庫等性能優化,并不在本文的討論范圍之內,故這里可以點到為止,當然面試官后續可能會繼續聊數據庫優化等話題,這樣就實現了與面試官的交流互動,一環扣一環,技術交流氛圍友好,面試通過率大大提高。

最后,我還想和大家探討一個問題,出現消息積壓就一定意味著遇到消費瓶頸,一定需要處理嗎?

其實也不然,我們回想一下為什么需要使用MQ,不就是利用異步解耦與削峰填谷嗎?例如在雙十一期間,大量突發流量匯入,此時很可能導致消息積壓,這正式我們的用意,用MQ抗住突發流量,后端應用慢慢消費,保證消費端的穩定,在積壓的情況下,如果tps正常,即問題不大,這個時候通常的處理方式就是橫向擴容,盡可能的降低積壓,減少業務的延遲。

丁威,《RocketMQ技術內幕》作者,RocketMQ社區優秀布道師,主打成體系分享JAVA主流中間件,打造完備的互聯網架構體系,目前涵蓋Java并發、微服務、消息、調度、數據異構等領域,未來繼續關注監控、在線診斷等領域。

本文轉載自微信公眾號「中間件興趣圈」,可以通過以下二維碼關注。轉載本文請聯系中間件興趣圈公眾號。

 

責任編輯:武曉燕 來源: 中間件興趣圈
相關推薦

2024-01-09 09:46:13

數據庫MySQL

2009-06-03 16:41:21

Eclipse亂碼Eclipse

2011-03-04 13:07:47

Filezilla

2017-05-19 08:32:10

Web設計SQL Server集群

2011-06-17 11:10:51

Qt 中文 輸出

2024-07-31 11:26:05

反射BeanXML

2009-12-07 18:38:16

WCF異常

2022-07-27 15:30:24

媒體查詢css

2014-10-30 13:36:55

開源系統

2011-01-19 17:54:48

2023-11-27 08:01:59

2009-05-31 09:07:35

Oracle鎖定

2011-03-04 13:49:38

FileZilla

2010-01-15 09:38:08

磁盤被寫保護解決辦法

2017-05-04 20:15:51

iOSNSTimer循環引用

2009-01-14 09:16:24

SQL Server查SQL Server查SQL Server

2016-07-04 14:22:47

DevOps案例軟件

2011-02-22 17:14:20

2018-10-16 09:28:43

網站服務器故障

2010-02-03 16:07:07

Ubuntu Auda
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美h视频 | 国产精品久久久久久吹潮 | 色综合天天综合网国产成人网 | 国产精品99久久久久 | 国产精品入口麻豆www | 日本成人综合 | 午夜在线影院 | 少妇精品久久久久久久久久 | 91久久久www播放日本观看 | 狠狠的日 | 一本一道久久a久久精品蜜桃 | 精品国产乱码久久久久久88av | 久久精品视频在线免费观看 | 久久久久久国产精品 | 日韩三级一区 | 日本三级电影免费观看 | 九一视频在线播放 | 一区二区久久 | 国产精品v | 亚洲狠狠 | 国产日韩一区二区三免费 | 日韩一区二区三区在线视频 | 韩国成人在线视频 | 亚洲人a| 自拍偷拍中文字幕 | 久久精品黄色 | 亚洲人成网站777色婷婷 | 狠狠热视频 | 欧美日韩国产一区二区三区 | 精品国产一区二区三区性色av | 欧美国产视频 | www.国产一区 | 韩国av影院| av在线免费观看网址 | 色射综合| 中文字幕亚洲一区二区三区 | 久久里面有精品 | 中文福利视频 | 久久久久久国产精品免费 | 日本在线视 | 欧美精品一区在线发布 |