日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

消費者太多!RocketMQ又炸了!

來源: 責編: 時間:2024-01-24 17:29:25 283觀看
導讀1、問題現象先說明下RocketMQ版本, 4.6.0的老版本了。線下環境客戶端啟動會頻繁報錯響應超時,導致consumer實例化失敗,無法啟動應用。圖片2、排查確認線下環境RocketMQ集群流量、生產消費數量無異常。集群gc次數不多,但是

1、問題現象

先說明下RocketMQ版本, 4.6.0的老版本了。XPd28資訊網——每日最新資訊28at.com

線下環境客戶端啟動會頻繁報錯響應超時,導致consumer實例化失敗,無法啟動應用。XPd28資訊網——每日最新資訊28at.com

圖片圖片XPd28資訊網——每日最新資訊28at.com

2、排查

確認線下環境RocketMQ集群流量、生產消費數量無異常。XPd28資訊網——每日最新資訊28at.com

集群gc次數不多,但是耗時高。(原本監控看板異常數據缺失,所以少了前面一段)XPd28資訊網——每日最新資訊28at.com

圖片圖片XPd28資訊網——每日最新資訊28at.com

master節點cpu使用率、load極高。XPd28資訊網——每日最新資訊28at.com

圖片圖片XPd28資訊網——每日最新資訊28at.com

升配,4c8g升級8c32g,擴大jvm內存。XPd28資訊網——每日最新資訊28at.com

系統指標略有下降,但是客戶端異常沒有明顯改善。XPd28資訊網——每日最新資訊28at.com

只能進一步排查根因,還得上arthas。XPd28資訊網——每日最新資訊28at.com

thread -n 3

查看cpu高的線程在做什么。XPd28資訊網——每日最新資訊28at.com

發現兩個異常線程。XPd28資訊網——每日最新資訊28at.com

1)一個線程在執行AdminBrokerProcessor.queryTopicConsumerByWho()。XPd28資訊網——每日最新資訊28at.com

圖片圖片XPd28資訊網——每日最新資訊28at.com

這個是查詢Topic的conusmerGroup信息。XPd28資訊網——每日最新資訊28at.com

比較奇怪的是,這個請求很頻繁,后來發現是控制臺應用dashboard有個定時任務,30s查詢一次。XPd28資訊網——每日最新資訊28at.com

這個請求的耗時主要是在數組的遍歷處理上,說明內存中的數據非常大。XPd28資訊網——每日最新資訊28at.com

圖片圖片XPd28資訊網——每日最新資訊28at.com

而這個源碼中的offsetTable,就是RocketMQ中保存consumerGroup位點信息的對象。它的key是topic@group拼接的。XPd28資訊網——每日最新資訊28at.com

圖片圖片XPd28資訊網——每日最新資訊28at.com

先臨時處理,把dashboard應用關閉了,減少請求。但是效果并不明顯。XPd28資訊網——每日最新資訊28at.com

2)另一個線程在執行定時任務ConsumerOffsetManager.persist()。XPd28資訊網——每日最新資訊28at.com

(線程調用信息忘記截圖了)XPd28資訊網——每日最新資訊28at.com

這個是RocketMQ集群持久化consumerGroup的offset信息的定時任務。XPd28資訊網——每日最新資訊28at.com

圖片圖片XPd28資訊網——每日最新資訊28at.com

會將整個內存對象轉化為jsonString寫入磁盤文件中。XPd28資訊網——每日最新資訊28at.com

這個內存對象就是前面提到的offsetTable,就是RocketMQ中保存consumerGroup位點信息的對象。XPd28資訊網——每日最新資訊28at.com

這里消耗資源多,還是說明我們的內存對象非常大。XPd28資訊網——每日最新資訊28at.com

因為是線下環境,可靠性要求不高。所以先臨時處理,把定時任務默認配置5s改成50s,減少持久化次數。XPd28資訊網——每日最新資訊28at.com

效果顯著,機器cpu、負載都明顯改善。XPd28資訊網——每日最新資訊28at.com

好了,現在問題的矛頭都指向了這個offsetTable,那它到底有多大,為什么這么大?XPd28資訊網——每日最新資訊28at.com

3、定位根因

3.1 直接原因

大對象的定位,一般來說需要dump看看,不過這個對象有點特殊,剛剛也提到了它會被持久化到文件中,所以直接看文件大小和內容就行了。XPd28資訊網——每日最新資訊28at.com

持久化文件的配置路徑,可以看下啟動的conf.propertiesXPd28資訊網——每日最新資訊28at.com

storePathRootDir=/usr/local/rocketmq/store1storePathCommitLog=/usr/local/rocketmq/store1/commitlogstorePathConsumerQueue=/usr/local/rocketmq/store1/consumequeuestorePathIndex=/usr/local/rocketmq/store1/index

在/usr/local/rocketmq/store1目錄下找到config文件夾的consummerOffset.json文件,44M,amazing~XPd28資訊網——每日最新資訊28at.com

對一個幾十M的對象頻繁序列化和持久化,加上內網磁盤比較差,難怪負載如此高。XPd28資訊網——每日最新資訊28at.com

圖片圖片XPd28資訊網——每日最新資訊28at.com

(這里截圖是當時應急時備份的文件,新的文件目前是414K)XPd28資訊網——每日最新資訊28at.com

3.2 根本原因

為什么這個內存對象這么大呢?XPd28資訊網——每日最新資訊28at.com

查看了下文件內容,是RocketMQ中保存consumerGroup位點信息的對象,它的key是topic@group拼接的。XPd28資訊網——每日最新資訊28at.com

我們發現大量奇怪的consumerGroup name,跟一個topic聯合產生了幾千個key。XPd28資訊網——每日最新資訊28at.com

查看了下內部封裝的客戶端代碼,找到了罪魁禍首。XPd28資訊網——每日最新資訊28at.com

圖片圖片XPd28資訊網——每日最新資訊28at.com

線下環境會根據小環境(比如自己起的測試、單測環境、CI測試環境等)拼接一個獨立的consumerGroup name。XPd28資訊網——每日最新資訊28at.com

在線下,每次CI的測試環境名字會變化,所以導致consumerGroup name數量急劇膨脹。XPd28資訊網——每日最新資訊28at.com

4、優化

問題找到了,直接的解決方式是刪除文件中無用的consumerGroup name,重啟broker進行加載。XPd28資訊網——每日最新資訊28at.com

由于是線下環境,不需要擔心位點丟失的問題,同時當客戶端請求時會自動創建新的位點信息,所以可以考慮直接刪除。XPd28資訊網——每日最新資訊28at.com

圖片圖片XPd28資訊網——每日最新資訊28at.com

先停止broker進程(否則會自動落盤內存數據,創建新的文件),然后重命名相關文件(用于備份回滾),重新啟動broker進程,讀取空文件加載空對象。XPd28資訊網——每日最新資訊28at.com

重啟后,各個客戶端在請求集群時,會自動創建訂閱關系和消費位點記錄,負載略有升高,然后就恢復到較低的負載水位了。XPd28資訊網——每日最新資訊28at.com

24h的監控顯示,優化效果顯著,整個機器負載降低,請求讀寫耗時也顯著降低。XPd28資訊網——每日最新資訊28at.com

圖片圖片XPd28資訊網——每日最新資訊28at.com

注意:保存訂閱關系的subscriptionGroup.json也存在同樣consumerGroup過多導致膨脹的問題,同樣的原因和優化方式。默認訂閱關系也是會自動創建的。這里就不展開贅述了。XPd28資訊網——每日最新資訊28at.com

5、擴展一下

如果類似的問題出在線上怎么辦?XPd28資訊網——每日最新資訊28at.com

事后來看,類似問題是能夠提前避免的,主要考慮兩個措施:XPd28資訊網——每日最新資訊28at.com

  • 要做好持久化文件(對應內存對象)大小監控,避免出現內存大對象。如果發現異常增長,必須提前排查處理。
  • 磁盤要足夠好,使用SSD是基本要求,避免頻繁刷盤導致負載升高。

本文鏈接:http://www.www897cc.com/showinfo-26-67353-0.html消費者太多!RocketMQ又炸了!

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 太失望了!前端社區對 React 的抱怨越來越多...

下一篇: 每個開發人員都應該閱讀的九篇非凡文獻

標簽:
  • 熱門焦點
  • Find N3入網:最高支持16+1TB

    OPPO將于近期登場的Find N3折疊屏目前已經正式入網,型號為PHN110。本次Find N3在外觀方面相比前兩代有很大的變化,不再是小號的橫向折疊屏,而是跟別的廠商一樣采用了較為常見的
  • 摸魚心法第一章——和配置文件說拜拜

    為了能摸魚我們團隊做了容器化,但是帶來的問題是服務配置文件很麻煩,然后大家在群里進行了“親切友好”的溝通圖片圖片圖片圖片對比就對比,簡單對比下獨立配置中心和k8s作為配
  • SpringBoot中使用Cache提升接口性能詳解

    環境:springboot2.3.12.RELEASE + JSR107 + Ehcache + JPASpring 框架從 3.1 開始,對 Spring 應用程序提供了透明式添加緩存的支持。和事務支持一樣,抽象緩存允許一致地使用各
  • 微信語音大揭秘:為什么禁止轉發?

    大家好,我是你們的小米。今天,我要和大家聊一個有趣的話題:為什么微信語音不可以轉發?這是一個我們經常在日常使用中遇到的問題,也是一個讓很多人好奇的問題。讓我們一起來揭開這
  • 使用Webdriver-manager解決瀏覽器與驅動不匹配所帶來自動化無法執行的問題

    1、前言在我們使用 Selenium 進行 UI 自動化測試時,常常會因為瀏覽器驅動與瀏覽器版本不匹配,而導致自動化測試無法執行,需要手動去下載對應的驅動版本,并替換原有的驅動,可能還
  • 阿里大調整

    來源:產品劉有媒體報道稱,近期淘寶天貓集團啟動了近年來最大的人力制度改革,涉及員工績效、層級體系等多個核心事項,目前已形成一個初步的“征求意見版”:1、取消P序列
  • AI芯片初創公司Tenstorrent獲三星和現代1億美元投資

    Tenstorrent是一家由芯片行業資深人士Jim Keller領導的加拿大初創公司,專注于開發人工智能芯片,該公司周三表示,已經從現代汽車集團和三星投資基金等
  • iQOO Neo8 Pro評測:旗艦雙芯加持 最強性能游戲旗艦

    【Techweb評測】去年10月,iQOO推出了一款Neo7手機,該機搭載了聯發科天璣9000+,配備獨顯芯片Pro+,帶來了同價位段最佳的游戲體驗,一經上市便受到了諸多用
  • 質感不錯!OPPO K11渲染圖曝光:旗艦IMX890傳感器首次下放

    一直以來,OPPO K系列機型都保持著較為均衡的產品體驗,歷來都是2K價位的明星機型,去年推出的OPPO K10和OPPO K10 Pro兩款機型憑借各自的出色配置,堪稱有
Top 主站蜘蛛池模板: 大埔区| 泾源县| 华容县| 当涂县| 靖边县| 伊宁县| 德阳市| 公主岭市| 正安县| 惠水县| 城口县| 太仆寺旗| 万州区| 咸丰县| 疏勒县| 云林县| 柏乡县| 尼木县| 沂源县| 高尔夫| 黑龙江省| 沙坪坝区| 普兰店市| 凤阳县| 棋牌| 米泉市| 来凤县| 县级市| 新津县| 哈巴河县| 长沙市| 浑源县| 保靖县| 通河县| 沈阳市| 临沭县| 南澳县| 喀喇| 贵溪市| 开原市| 额敏县|