golang下的并發(fā)、并行優(yōu)化

GO語(yǔ)言是非常適合高并發(fā)場(chǎng)景的乌妒,那么,業(yè)務(wù)系統(tǒng)具體會(huì)遇到哪些高并發(fā)的場(chǎng)景呢涌庭?該如何考慮性能開銷呢芥被?那么本文就筆者在業(yè)務(wù)系統(tǒng)常常遇到的問(wèn)題來(lái)拋磚引玉~

請(qǐng)求合并

這是什么場(chǎng)景呢欧宜?回源坐榆!回源DB,二進(jìn)制流回源源站等等~高并發(fā)的場(chǎng)景下冗茸,大量用戶訪問(wèn)同一個(gè)對(duì)象席镀,那么做請(qǐng)求合并可以節(jié)省非称ブ校可觀的資源,singleflight~當(dāng)然這是進(jìn)程內(nèi)的用法豪诲。

批量協(xié)議

好像和請(qǐng)求合并有點(diǎn)像顶捷?不太一樣。比較經(jīng)典的case就是redis的pipeline屎篱,業(yè)務(wù)接口更是如此服赎。能批量就批量,減少請(qǐng)求放大交播,減少太多的封包解包重虑,減少cpu和帶寬~

merge請(qǐng)求

額~~merge什么?比如一個(gè)視頻id更新計(jì)數(shù)秦士,那么9->18->25......對(duì)了缺厉,計(jì)數(shù)從1漲到100,難道我要寫100次db嗎隧土?很明顯提针,可以內(nèi)存里merge~~

并行請(qǐng)求

這個(gè)用法在網(wǎng)關(guān)服務(wù)就非常常見啦~當(dāng)你的服務(wù)需要聚合A、B曹傀、C這3個(gè)系統(tǒng)的數(shù)據(jù)辐脖,而A、B和C之間沒(méi)有依賴皆愉,那么完全可以并行請(qǐng)求揖曾。golang里常用errgroup去實(shí)現(xiàn)。

減少鎖以及系統(tǒng)調(diào)用

? ? ? ? 有些情況鎖是很難避免的亥啦,但是可以通過(guò)一些鎖粒度拆分優(yōu)化去減少鎖的開銷炭剪。系統(tǒng)調(diào)用對(duì)cpu的開銷都是挺明顯的,具體可以壓測(cè)看profile翔脱,也可以查看top奴拦,us%的開銷在90%以上,說(shuō)明性能優(yōu)化還是可以的届吁。

序列化協(xié)議错妖,json和pb

? ??????這里既包括API的協(xié)議,也同時(shí)包括緩存對(duì)象的序列化協(xié)議疚沐。緩存的訪問(wèn)常常會(huì)幾倍于api請(qǐng)求暂氯,經(jīng)常有放大,所以更要重視亮蛔。

異步處理痴施,使用channel,而不是無(wú)限制go func()

????????比如更新緩存的場(chǎng)景。這點(diǎn)挺容易理解辣吃,無(wú)限制的goroutine會(huì)帶來(lái)大量的context切換动遭,浪費(fèi)cpu。當(dāng)然channel的長(zhǎng)度要做限制和監(jiān)控神得。消費(fèi)者goroutine數(shù)可以適當(dāng)配置厘惦。


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市哩簿,隨后出現(xiàn)的幾起案子宵蕉,更是在濱河造成了極大的恐慌,老刑警劉巖节榜,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件国裳,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡全跨,警方通過(guò)查閱死者的電腦和手機(jī)缝左,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)浓若,“玉大人渺杉,你說(shuō)我怎么就攤上這事∨驳觯” “怎么了是越?”我有些...
    開封第一講書人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)碌上。 經(jīng)常有香客問(wèn)我倚评,道長(zhǎng),這世上最難降的妖魔是什么馏予? 我笑而不...
    開封第一講書人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任天梧,我火速辦了婚禮,結(jié)果婚禮上霞丧,老公的妹妹穿的比我還像新娘呢岗。我一直安慰自己,他們只是感情好蛹尝,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開白布后豫。 她就那樣靜靜地躺著,像睡著了一般突那。 火紅的嫁衣襯著肌膚如雪挫酿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,007評(píng)論 1 284
  • 那天愕难,我揣著相機(jī)與錄音早龟,去河邊找鬼惫霸。 笑死,一個(gè)胖子當(dāng)著我的面吹牛拄衰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播饵骨,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼翘悉,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了居触?” 一聲冷哼從身側(cè)響起妖混,我...
    開封第一講書人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎轮洋,沒(méi)想到半個(gè)月后制市,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡弊予,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年祥楣,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片汉柒。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡误褪,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出碾褂,到底是詐尸還是另有隱情兽间,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布正塌,位于F島的核電站嘀略,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏乓诽。R本人自食惡果不足惜帜羊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鸠天。 院中可真熱鬧逮壁,春花似錦、人聲如沸粮宛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)巍杈。三九已至忧饭,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間筷畦,已是汗流浹背词裤。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工刺洒, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人吼砂。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓逆航,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親渔肩。 傳聞我的和親對(duì)象是個(gè)殘疾皇子因俐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345