AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當(dāng)前位置:首頁 > 科技  > 軟件

消費(fèi)者太多!RocketMQ又炸了!

來源: 責(zé)編: 時(shí)間:2024-01-24 17:29:25 277觀看
導(dǎo)讀1、問題現(xiàn)象先說明下RocketMQ版本, 4.6.0的老版本了。線下環(huán)境客戶端啟動(dòng)會(huì)頻繁報(bào)錯(cuò)響應(yīng)超時(shí),導(dǎo)致consumer實(shí)例化失敗,無法啟動(dòng)應(yīng)用。圖片2、排查確認(rèn)線下環(huán)境RocketMQ集群流量、生產(chǎn)消費(fèi)數(shù)量無異常。集群gc次數(shù)不多,但是

1、問題現(xiàn)象

先說明下RocketMQ版本, 4.6.0的老版本了。14928資訊網(wǎng)——每日最新資訊28at.com

線下環(huán)境客戶端啟動(dòng)會(huì)頻繁報(bào)錯(cuò)響應(yīng)超時(shí),導(dǎo)致consumer實(shí)例化失敗,無法啟動(dòng)應(yīng)用。14928資訊網(wǎng)——每日最新資訊28at.com

圖片圖片14928資訊網(wǎng)——每日最新資訊28at.com

2、排查

確認(rèn)線下環(huán)境RocketMQ集群流量、生產(chǎn)消費(fèi)數(shù)量無異常。14928資訊網(wǎng)——每日最新資訊28at.com

集群gc次數(shù)不多,但是耗時(shí)高。(原本監(jiān)控看板異常數(shù)據(jù)缺失,所以少了前面一段)14928資訊網(wǎng)——每日最新資訊28at.com

圖片圖片14928資訊網(wǎng)——每日最新資訊28at.com

master節(jié)點(diǎn)cpu使用率、load極高。14928資訊網(wǎng)——每日最新資訊28at.com

圖片圖片14928資訊網(wǎng)——每日最新資訊28at.com

升配,4c8g升級(jí)8c32g,擴(kuò)大jvm內(nèi)存。14928資訊網(wǎng)——每日最新資訊28at.com

系統(tǒng)指標(biāo)略有下降,但是客戶端異常沒有明顯改善。14928資訊網(wǎng)——每日最新資訊28at.com

只能進(jìn)一步排查根因,還得上arthas。14928資訊網(wǎng)——每日最新資訊28at.com

thread -n 3

查看cpu高的線程在做什么。14928資訊網(wǎng)——每日最新資訊28at.com

發(fā)現(xiàn)兩個(gè)異常線程。14928資訊網(wǎng)——每日最新資訊28at.com

1)一個(gè)線程在執(zhí)行AdminBrokerProcessor.queryTopicConsumerByWho()。14928資訊網(wǎng)——每日最新資訊28at.com

圖片圖片14928資訊網(wǎng)——每日最新資訊28at.com

這個(gè)是查詢Topic的conusmerGroup信息。14928資訊網(wǎng)——每日最新資訊28at.com

比較奇怪的是,這個(gè)請(qǐng)求很頻繁,后來發(fā)現(xiàn)是控制臺(tái)應(yīng)用dashboard有個(gè)定時(shí)任務(wù),30s查詢一次。14928資訊網(wǎng)——每日最新資訊28at.com

這個(gè)請(qǐng)求的耗時(shí)主要是在數(shù)組的遍歷處理上,說明內(nèi)存中的數(shù)據(jù)非常大。14928資訊網(wǎng)——每日最新資訊28at.com

圖片圖片14928資訊網(wǎng)——每日最新資訊28at.com

而這個(gè)源碼中的offsetTable,就是RocketMQ中保存consumerGroup位點(diǎn)信息的對(duì)象。它的key是topic@group拼接的。14928資訊網(wǎng)——每日最新資訊28at.com

圖片圖片14928資訊網(wǎng)——每日最新資訊28at.com

先臨時(shí)處理,把dashboard應(yīng)用關(guān)閉了,減少請(qǐng)求。但是效果并不明顯。14928資訊網(wǎng)——每日最新資訊28at.com

2)另一個(gè)線程在執(zhí)行定時(shí)任務(wù)ConsumerOffsetManager.persist()。14928資訊網(wǎng)——每日最新資訊28at.com

(線程調(diào)用信息忘記截圖了)14928資訊網(wǎng)——每日最新資訊28at.com

這個(gè)是RocketMQ集群持久化consumerGroup的offset信息的定時(shí)任務(wù)。14928資訊網(wǎng)——每日最新資訊28at.com

圖片圖片14928資訊網(wǎng)——每日最新資訊28at.com

會(huì)將整個(gè)內(nèi)存對(duì)象轉(zhuǎn)化為jsonString寫入磁盤文件中。14928資訊網(wǎng)——每日最新資訊28at.com

這個(gè)內(nèi)存對(duì)象就是前面提到的offsetTable,就是RocketMQ中保存consumerGroup位點(diǎn)信息的對(duì)象。14928資訊網(wǎng)——每日最新資訊28at.com

這里消耗資源多,還是說明我們的內(nèi)存對(duì)象非常大。14928資訊網(wǎng)——每日最新資訊28at.com

因?yàn)槭蔷€下環(huán)境,可靠性要求不高。所以先臨時(shí)處理,把定時(shí)任務(wù)默認(rèn)配置5s改成50s,減少持久化次數(shù)。14928資訊網(wǎng)——每日最新資訊28at.com

效果顯著,機(jī)器cpu、負(fù)載都明顯改善。14928資訊網(wǎng)——每日最新資訊28at.com

好了,現(xiàn)在問題的矛頭都指向了這個(gè)offsetTable,那它到底有多大,為什么這么大?14928資訊網(wǎng)——每日最新資訊28at.com

3、定位根因

3.1 直接原因

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

持久化文件的配置路徑,可以看下啟動(dòng)的conf.properties14928資訊網(wǎng)——每日最新資訊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~14928資訊網(wǎng)——每日最新資訊28at.com

對(duì)一個(gè)幾十M的對(duì)象頻繁序列化和持久化,加上內(nèi)網(wǎng)磁盤比較差,難怪負(fù)載如此高。14928資訊網(wǎng)——每日最新資訊28at.com

圖片圖片14928資訊網(wǎng)——每日最新資訊28at.com

(這里截圖是當(dāng)時(shí)應(yīng)急時(shí)備份的文件,新的文件目前是414K)14928資訊網(wǎng)——每日最新資訊28at.com

3.2 根本原因

為什么這個(gè)內(nèi)存對(duì)象這么大呢?14928資訊網(wǎng)——每日最新資訊28at.com

查看了下文件內(nèi)容,是RocketMQ中保存consumerGroup位點(diǎn)信息的對(duì)象,它的key是topic@group拼接的。14928資訊網(wǎng)——每日最新資訊28at.com

我們發(fā)現(xiàn)大量奇怪的consumerGroup name,跟一個(gè)topic聯(lián)合產(chǎn)生了幾千個(gè)key。14928資訊網(wǎng)——每日最新資訊28at.com

查看了下內(nèi)部封裝的客戶端代碼,找到了罪魁禍?zhǔn)住?span style="display:none">14928資訊網(wǎng)——每日最新資訊28at.com

圖片圖片14928資訊網(wǎng)——每日最新資訊28at.com

線下環(huán)境會(huì)根據(jù)小環(huán)境(比如自己起的測(cè)試、單測(cè)環(huán)境、CI測(cè)試環(huán)境等)拼接一個(gè)獨(dú)立的consumerGroup name。14928資訊網(wǎng)——每日最新資訊28at.com

在線下,每次CI的測(cè)試環(huán)境名字會(huì)變化,所以導(dǎo)致consumerGroup name數(shù)量急劇膨脹。14928資訊網(wǎng)——每日最新資訊28at.com

4、優(yōu)化

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

由于是線下環(huán)境,不需要擔(dān)心位點(diǎn)丟失的問題,同時(shí)當(dāng)客戶端請(qǐng)求時(shí)會(huì)自動(dòng)創(chuàng)建新的位點(diǎn)信息,所以可以考慮直接刪除。14928資訊網(wǎng)——每日最新資訊28at.com

圖片圖片14928資訊網(wǎng)——每日最新資訊28at.com

先停止broker進(jìn)程(否則會(huì)自動(dòng)落盤內(nèi)存數(shù)據(jù),創(chuàng)建新的文件),然后重命名相關(guān)文件(用于備份回滾),重新啟動(dòng)broker進(jìn)程,讀取空文件加載空對(duì)象。14928資訊網(wǎng)——每日最新資訊28at.com

重啟后,各個(gè)客戶端在請(qǐng)求集群時(shí),會(huì)自動(dòng)創(chuàng)建訂閱關(guān)系和消費(fèi)位點(diǎn)記錄,負(fù)載略有升高,然后就恢復(fù)到較低的負(fù)載水位了。14928資訊網(wǎng)——每日最新資訊28at.com

24h的監(jiān)控顯示,優(yōu)化效果顯著,整個(gè)機(jī)器負(fù)載降低,請(qǐng)求讀寫耗時(shí)也顯著降低。14928資訊網(wǎng)——每日最新資訊28at.com

圖片圖片14928資訊網(wǎng)——每日最新資訊28at.com

注意:保存訂閱關(guān)系的subscriptionGroup.json也存在同樣consumerGroup過多導(dǎo)致膨脹的問題,同樣的原因和優(yōu)化方式。默認(rèn)訂閱關(guān)系也是會(huì)自動(dòng)創(chuàng)建的。這里就不展開贅述了。14928資訊網(wǎng)——每日最新資訊28at.com

5、擴(kuò)展一下

如果類似的問題出在線上怎么辦?14928資訊網(wǎng)——每日最新資訊28at.com

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

  • 要做好持久化文件(對(duì)應(yīng)內(nèi)存對(duì)象)大小監(jiān)控,避免出現(xiàn)內(nèi)存大對(duì)象。如果發(fā)現(xiàn)異常增長(zhǎng),必須提前排查處理。
  • 磁盤要足夠好,使用SSD是基本要求,避免頻繁刷盤導(dǎo)致負(fù)載升高。

本文鏈接:http://www.tebozhan.com/showinfo-26-67353-0.html消費(fèi)者太多!RocketMQ又炸了!

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 太失望了!前端社區(qū)對(duì) React 的抱怨越來越多...

下一篇: 每個(gè)開發(fā)人員都應(yīng)該閱讀的九篇非凡文獻(xiàn)

標(biāo)簽:
  • 熱門焦點(diǎn)
  • JavaScript 混淆及反混淆代碼工具

    介紹在我們開始學(xué)習(xí)反混淆之前,我們首先要了解一下代碼混淆。如果不了解代碼是如何混淆的,我們可能無法成功對(duì)代碼進(jìn)行反混淆,尤其是使用自定義混淆器對(duì)其進(jìn)行混淆時(shí)。什么是混
  • 三言兩語說透設(shè)計(jì)模式的藝術(shù)-簡(jiǎn)單工廠模式

    一、寫在前面工廠模式是最常見的一種創(chuàng)建型設(shè)計(jì)模式,通常說的工廠模式指的是工廠方法模式,是使用頻率最高的工廠模式。簡(jiǎn)單工廠模式又稱為靜態(tài)工廠方法模式,不屬于GoF 23種設(shè)計(jì)
  • Rust中的高吞吐量流處理

    作者 | Noz編譯 | 王瑞平本篇文章主要介紹了Rust中流處理的概念、方法和優(yōu)化。作者不僅介紹了流處理的基本概念以及Rust中常用的流處理庫,還使用這些庫實(shí)現(xiàn)了一個(gè)流處理程序
  • 使用AIGC工具提升安全工作效率

    在日常工作中,安全人員可能會(huì)涉及各種各樣的安全任務(wù),包括但不限于:開發(fā)某些安全工具的插件,滿足自己特定的安全需求;自定義github搜索工具,快速查找所需的安全資料、漏洞poc、exp
  • 2天漲粉255萬,又一賽道在抖音爆火

    來源:運(yùn)營(yíng)研究社作者 | 張知白編輯 | 楊佩汶設(shè)計(jì) | 晏談夢(mèng)潔這個(gè)暑期,旅游賽道徹底火了:有的「地方」火了——貴州村超旅游收入 1 個(gè)月超過 12 億;有的「博主」火了&m
  • “又被陳思誠(chéng)騙了”

    作者|張思齊 出品|眾面(ID:ZhongMian_ZM)如今的國(guó)產(chǎn)懸疑電影,成了陳思誠(chéng)的天下。最近大爆電影《消失的她》票房突破30億斷層奪魁暑期檔,陳思誠(chéng)再度風(fēng)頭無兩。你可以說陳思誠(chéng)的
  • 阿里瓴羊One推出背后,零售企業(yè)迎數(shù)字化新解

    作者:劉曠近年來隨著數(shù)字經(jīng)濟(jì)的高速發(fā)展,各式各樣的SaaS應(yīng)用服務(wù)更是層出不窮,但本質(zhì)上SaaS大多局限于單一業(yè)務(wù)流層面,對(duì)用戶核心關(guān)切的增長(zhǎng)問題等則沒有提供更好的解法。在Saa
  • 余承東:AI大模型技術(shù)的發(fā)展將會(huì)帶來下一代智能終端操作系統(tǒng)的智慧體驗(yàn)

    8月4日消息,2023年華為開發(fā)者大會(huì)(HDC.Together)今天正式開幕,華為發(fā)布HarmonyOS 4、全新升級(jí)的鴻蒙開發(fā)套件、HarmonyOS Next開發(fā)者預(yù)覽版本等一系列
  • 朋友圈可以修改可見范圍了 蘋果用戶可率先體驗(yàn)

    近日,iOS用戶迎來微信8.0.27正式版更新,除了可更換二維碼背景外,還新增了多項(xiàng)實(shí)用功能。在新版微信中,朋友圈終于可以修改可見范圍,簡(jiǎn)單來說就是已發(fā)布的朋友圈
Top