最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

反向壓力

2021-08-30 13:18 作者:程序員魚皮  | 我要投稿

一個有趣的編程小知識

大家好,我是魚皮,今天分享一個實用的編程小知識 —— 反向壓力。

在介紹反向壓力前,我們先聊聊什么是壓力?

什么是壓力?

我是一個打工人,日常工作就是聽產(chǎn)品經(jīng)理的話,寫代碼做需求。

正常打工

正常情況下,我每天能寫 500 行代碼,一周能做完 1 個需求就不錯了。

但如果某天,領(lǐng)導(dǎo)突然發(fā)話了:對手公司已經(jīng)榮華富貴了,我們也得抓緊,發(fā)財發(fā)財發(fā)財!

于是產(chǎn)品經(jīng)理收到了更多來自領(lǐng)導(dǎo)的需求,也就給我安排了更多的需求。但我畢竟能力有限,每天只能寫那么幾行代碼,因此只能每天加班苦不堪言,整個人處于超負荷狀態(tài),感受到了 壓力 。

有壓力了

那把這個場景類比到程序系統(tǒng)中,就是服務(wù)調(diào)用方對服務(wù)提供者的壓力,或者說是請求方對處理方的壓力。每個服務(wù)單位時間的處理能力是有限的,一旦請求量過大,服務(wù)的壓力就會逐漸增大(可能是內(nèi)存等資源不斷被占用),嚴重時會導(dǎo)致服務(wù)停機。

服務(wù)調(diào)用

也可以把整個過程理解為泳池蓄水吧,進水管比排水管的水量更大,那泳池一會兒就水滿溢出了。

了解什么是壓力后,反向壓力就很簡單了。

什么是反向壓力?

先接著做個比喻,假如領(lǐng)導(dǎo)和產(chǎn)品經(jīng)理要給我增加過多的工作量,那我干嘛要傻傻的默默忍受呢?不是還有其他選擇么?

  1. 跟上級們反映一下,工作量太多

  2. 實在欺人太甚的話,直接甩下一句話:勞資不干了!

當(dāng)然,對于領(lǐng)導(dǎo)來說,可能也會給你兩種結(jié)果:

  1. 傾聽你的反饋,動態(tài)調(diào)整你的工作量,先讓你做高優(yōu)先級的需求,其他的排到后面慢慢做

  2. 愛干不干,不干滾蛋!

顯然第一種情況比較好對吧。這便是反向壓力(Back Pressure),又叫 背壓

類比到程序系統(tǒng)中,就是根據(jù)服務(wù)處理方的處理能力和狀態(tài)動態(tài)地調(diào)整調(diào)用方的請求頻率。

可以是處理方 主動通知 調(diào)用方:哦我壓力太大了、活干不完了!然后調(diào)用方可以減少請求頻率。

也可以是調(diào)用方 被動監(jiān)測 處理方:看見員工開始摸魚了,肯定是工作不飽和!然后調(diào)用方可以逐漸增大請求頻率。

反向壓力

反向壓力的好處

反向壓力實際上是 流量控制 的一種解決方案,可以使得調(diào)用方和處理方的能力相匹配,從而保護系統(tǒng)的各節(jié)點處于持續(xù)的正常工作狀態(tài)。

如果不使用反向壓力,只能人為去評估系統(tǒng)中各個節(jié)點能承受的壓力,再給每個服務(wù)調(diào)用者的調(diào)用頻率加一個 固定 的限制。限制設(shè)小了,就很容易產(chǎn)生資源浪費;限制設(shè)大了,服務(wù)又可能承受不住,導(dǎo)致掛掉或被剔除。

而且最致命的是,系統(tǒng)中的節(jié)點變化是不可控的,可能現(xiàn)在的系統(tǒng)狀態(tài)很穩(wěn)定,但如果突然多了個服務(wù)調(diào)用方,就又增加了服務(wù)提供者的壓力。而這種壓力沒有被感知到,才是最恐怖的!

新服務(wù)調(diào)用方

因此,如今動態(tài)流控、甚至是智能流控也被應(yīng)用的越來越廣泛。

反向壓力的應(yīng)用

有流量控制的需求,就會有反向壓力的身影。

我是從一本 實時流式計算 的書籍中第一次真正了解到反向壓力的概念,這也是它應(yīng)用最廣泛的領(lǐng)域,像幾個流處理框架 Flink、Spark Streaming、Storm 中,都有相應(yīng)的反向壓力實現(xiàn)。

反向壓力的概念也被廣泛應(yīng)用于 反應(yīng)式編程(Reactive Programming)中,比如 Spring WebFlux、RxJava 框架等,可以實現(xiàn)異步非阻塞、低延遲、高吞吐量的處理系統(tǒng)。

此外,反向壓力的思想也很實用,比如 TCP 網(wǎng)絡(luò)協(xié)議的流量和擁塞控制中,實際是由發(fā)送方和接收方共同確認數(shù)據(jù)包滑動窗口的大小,從而控制傳輸包的速率。

TCP 協(xié)議數(shù)據(jù)包傳輸

因此,反向壓力還是很值得學(xué)習(xí)的!

至于它如何實現(xiàn),還是有很大學(xué)問的,不同框架的實現(xiàn)方式也不同,大家可以自行了解。(等我學(xué)好了再分享哈哈)

以上就是本期分享,最后再送大家一些 幫助我拿到大廠 offer 的學(xué)習(xí)資料

指路:https://t.1yb.co/qOJG

也歡迎閱讀 我自學(xué)進入騰訊的編程學(xué)習(xí)和求職經(jīng)歷,不再迷茫!

指路:https://t.1yb.co/w66s

我是魚皮,學(xué)到的話還請 點贊 支持,這是我持續(xù)更新的最大動力!??


反向壓力的評論 (共 條)

分享到微博請遵守國家法律
奉贤区| 安国市| 东乌珠穆沁旗| 南昌县| 芒康县| 翁牛特旗| 厦门市| 中牟县| 凤城市| 泉州市| 连城县| 巴中市| 井研县| 宜州市| 新巴尔虎右旗| 马鞍山市| 丹巴县| 西平县| 辛集市| 呼图壁县| 贵德县| 泾源县| 满城县| 康平县| 油尖旺区| 石屏县| 保靖县| 岳普湖县| 泸州市| 巢湖市| 阳高县| 建水县| 绵竹市| 连城县| 榆树市| 洱源县| 金门县| 古交市| 沙洋县| 阳春市| 岑溪市|