亚洲中文字幕乱码亚洲-蜜桃成熟视频在线观看-免费中文字幕视频在线-中国五十路熟妇洗澡视频-亚洲av伊人啪啪c-国产精品成人一区二区-国产自拍视频一区在线观看-成人一区不卡二区三区四区-亚洲情精品中文字幕99在线

網(wǎng)易首頁 > 網(wǎng)易號 > 正文 申請入駐

系統(tǒng)設(shè)計學(xué)習(xí)筆記:8個被說爛卻沒人講透的概念

0
分享至

「緩存淘汰策略到底在淘汰什么?負(fù)載均衡真的只是隨機分配嗎?」——這些面試必問的系統(tǒng)設(shè)計題,答案往往停留在八股文層面。一位開發(fā)者在學(xué)習(xí)筆記里扒開了這些概念的底層邏輯,有些發(fā)現(xiàn)甚至和主流認(rèn)知相反。

一、輪詢與推送:長輪詢不是"更長的輪詢"


客戶端獲取服務(wù)器更新的方式,本質(zhì)只有兩種:輪詢(Poll)和推送(Push)。但三種具體實現(xiàn)的技術(shù)選型,藏著容易被忽略的工程陷阱。

短輪詢(Short Polling)最直觀:客戶端定時發(fā)請求問服務(wù)器"有消息嗎",沒有就立即返回空響應(yīng)。優(yōu)點是實現(xiàn)簡單,缺點是空跑嚴(yán)重——服務(wù)器壓力隨客戶端數(shù)量線性增長,實時性還受限于輪詢間隔。

長輪詢(Long Polling)常被誤解為"把輪詢間隔拉長",實際上完全不是一回事。客戶端發(fā)起請求后,服務(wù)器會掛起這個HTTP連接,直到有新數(shù)據(jù)才返回響應(yīng)。連接結(jié)束后客戶端立即發(fā)起新請求,保持"隨時待命"狀態(tài)。

這帶來一個反直覺的成本:長輪詢的服務(wù)器資源占用比短輪詢更高。每個掛起的連接都需要維持TCP會話,高并發(fā)場景下容易觸及服務(wù)器的連接數(shù)上限。很多開發(fā)者直到壓測時才意識到,"更優(yōu)方案"反而成了瓶頸。

真正的推送方案是SSE(服務(wù)器推送事件)和WebSocket。SSE基于HTTP,適合服務(wù)器單向推送場景;WebSocket建立后是全雙工通道,雙方隨時發(fā)數(shù)據(jù)。但WebSocket的維護復(fù)雜度常被低估——心跳檢測、斷線重連、代理穿透,每個都是生產(chǎn)環(huán)境的坑。

二、擴展的兩種哲學(xué):縱向是賭命,橫向是手術(shù)

垂直擴展(Vertical Scaling)和水平擴展(Horizontal Scaling)的選擇,本質(zhì)是風(fēng)險偏好的體現(xiàn)。

縱向擴展就是給單臺服務(wù)器加配置:更多CPU、更大內(nèi)存、更快磁盤。這像給老車換引擎——見效快,但天花板明顯。單機性能總有物理極限,且升級過程往往需要停機,形成"維護窗口"的業(yè)務(wù)損失。

更隱蔽的風(fēng)險是單點故障。一臺價值50萬的高端服務(wù)器宕機,和五臺10萬的服務(wù)器掛掉一臺,業(yè)務(wù)連續(xù)性完全不同。后者可以用負(fù)載均衡快速切流,前者直接服務(wù)中斷。

水平擴展則是分布式架構(gòu)的起點:加機器,分流量。但這需要系統(tǒng)層面配合——無狀態(tài)化設(shè)計、數(shù)據(jù)分片策略、分布式事務(wù)處理。很多"無法水平擴展"的遺留系統(tǒng),問題不在技術(shù)而在歷史包袱:session粘滯、本地緩存依賴、數(shù)據(jù)庫自增ID。

一個判斷標(biāo)準(zhǔn):如果擴展需要改動應(yīng)用代碼,說明架構(gòu)債務(wù)已經(jīng)累積。理想狀態(tài)下,擴縮容應(yīng)該只是運維層面的機器增減。

三、負(fù)載均衡:隨機是最差的策略

負(fù)載均衡器(Load Balancer)被簡單理解為"流量分配器",但分配策略的選擇直接影響系統(tǒng)穩(wěn)定性。

輪詢(Round Robin)最公平,卻無視服務(wù)器的實際負(fù)載。一臺機器因為GC停頓響應(yīng)變慢,輪詢?nèi)詴丛床粩嗳埱筮^去。加權(quán)輪詢稍微改進,但權(quán)重調(diào)整往往滯后于真實狀態(tài)。

最少連接數(shù)(Least Connections)策略更聰明:把新請求發(fā)給當(dāng)前活躍連接最少的后端。這適合長連接場景,比如WebSocket服務(wù)。但短連接密集時,連接數(shù)的統(tǒng)計噪聲會讓策略失效。

最實用的往往是健康檢查+動態(tài)剔除的組合。負(fù)載均衡器持續(xù)探測后端狀態(tài),發(fā)現(xiàn)異常立即移出池子。很多故障不是瞬間崩潰,而是響應(yīng)時間逐漸劣化——沒有健康檢查,這些"慢節(jié)點"會持續(xù)拖累整體性能。

反向代理(Reverse Proxy)和正向代理(Forward Proxy)常被混淆。正向代理站在客戶端一側(cè),幫用戶訪問目標(biāo)網(wǎng)站(比如翻墻);反向代理站在服務(wù)器一側(cè),對外暴露統(tǒng)一入口,對內(nèi)分發(fā)到具體服務(wù)。Nginx、HAProxy、AWS ALB都是反向代理的實現(xiàn)。

四、緩存淘汰:LRU不是銀彈

緩存滿了怎么辦?淘汰策略(Cache Eviction Policy)決定哪些數(shù)據(jù)該被扔掉。但"最近最少使用"(LRU)的流行,掩蓋了其他策略的適用場景。

LRU的核心假設(shè)是:過去被訪問的數(shù)據(jù)未來更可能被訪問。這在用戶行為穩(wěn)定的場景成立,但面對周期性批量任務(wù)時會失效。比如每晚運行的報表生成,會把大量冷數(shù)據(jù)一次性灌入緩存,擠掉真正的高頻熱點。

LFU(最不經(jīng)常使用)計數(shù)訪問頻次,能識別長期熱點,但無法適應(yīng)興趣漂移。一個突然爆火的新聞事件,在LFU策略下要積累足夠計數(shù)才能常駐緩存,錯失流量高峰。

TTL(生存時間)策略最簡單:給數(shù)據(jù)設(shè)置過期時間。適合時效性強的場景,比如驗證碼、限時活動。但需要預(yù)估合理的過期時長,太短增加回源壓力,太長導(dǎo)致數(shù)據(jù)陳舊。

生產(chǎn)環(huán)境往往是混合策略:LRU處理常規(guī)流量,TTL兜底異常場景,再輔以手動標(biāo)記的"永不過期"關(guān)鍵數(shù)據(jù)。緩存設(shè)計最難的不是技術(shù)選型,而是對業(yè)務(wù)訪問模式的準(zhǔn)確建模

五、API網(wǎng)關(guān)與冪等性:分布式系統(tǒng)的安全帶

API網(wǎng)關(guān)作為統(tǒng)一入口,職責(zé)常被過度膨脹。認(rèn)證、限流、路由、協(xié)議轉(zhuǎn)換、日志采集——功能堆砌后,網(wǎng)關(guān)本身成為新的單點瓶頸。一個設(shè)計原則是:網(wǎng)關(guān)只處理橫切關(guān)注點,業(yè)務(wù)邏輯下沉到微服務(wù)。

冪等性(Idempotency)是分布式系統(tǒng)的核心概念,卻少有工程團隊真正落實。定義很明確:同一操作執(zhí)行多次,結(jié)果與執(zhí)行一次相同。但實現(xiàn)層面,網(wǎng)絡(luò)超時、消息重試、用戶重復(fù)點擊,都會打破這個假設(shè)。

HTTP方法的冪等性設(shè)計值得細品。GET天然冪等,因為不修改狀態(tài);POST創(chuàng)建資源,多次調(diào)用會生成多個記錄;PUT更新為指定值,多次執(zhí)行結(jié)果一致;DELETE刪除資源,第一次成功后續(xù)都是"資源不存在"——也算冪等。

實際業(yè)務(wù)中,POST的冪等性最難保證。常見方案是客戶端生成唯一請求ID,服務(wù)端用數(shù)據(jù)庫唯一索引或分布式鎖去重。但請求ID的生成、傳遞、存儲都有成本,很多團隊直到出現(xiàn)重復(fù)訂單才補課。

一個犀利觀察:冪等性實現(xiàn)往往和"性能優(yōu)化"沖突。去重檢查需要額外存儲和查詢,高并發(fā)場景下可能成為瓶頸。這解釋了為什么金融支付系統(tǒng)愿意投入大量工程資源做冪等,而內(nèi)容社區(qū)往往選擇性忽略——業(yè)務(wù)對一致性的容忍度,決定了技術(shù)投入的上限

六、WebSocket:全雙工的代價

WebSocket解決了HTTP半雙工的痛點,但"隨時雙向通信"的能力不是免費的。

建立連接需要一次HTTP升級握手,這消耗1個RTT。連接維持期間,TCP keepalive和WebSocket心跳包持續(xù)占用帶寬。更重要的是,WebSocket連接有狀態(tài)——服務(wù)器需要維護連接映射表,水平擴展時必須解決會話同步問題。

很多團隊用Redis存儲用戶ID到服務(wù)器實例的映射,實現(xiàn)"消息路由"。但這引入新的依賴:Redis宕機怎么辦?網(wǎng)絡(luò)分區(qū)時消息往哪發(fā)?這些復(fù)雜度在選型演示時往往被跳過。

一個替代方案是SSE(Server-Sent Events),基于HTTP流實現(xiàn)服務(wù)器推送。無法客戶端主動推送,但實現(xiàn)簡單、自動支持HTTP/2多路復(fù)用、代理兼容性更好。如果業(yè)務(wù)場景是服務(wù)器主導(dǎo)的信息流(股價、通知、日志),SSE可能是更務(wù)實的選擇。

七、TCP:可靠性的幻覺

原文對TCP的定義極簡:"兩臺設(shè)備在網(wǎng)絡(luò)上的對話方式"。但這句輕描淡寫背后,藏著系統(tǒng)設(shè)計的關(guān)鍵認(rèn)知。

TCP的可靠性是端到端的承諾,不是應(yīng)用層的保證。數(shù)據(jù)成功抵達操作系統(tǒng)內(nèi)核,不代表業(yè)務(wù)程序已處理;連接正常建立,不代表對方服務(wù)已就緒。很多"神秘丟數(shù)據(jù)"的bug,根源在于混淆了傳輸層和應(yīng)用層的邊界。

WebSocket基于TCP,繼承了這些特性,也繼承了這些問題。應(yīng)用層需要自己實現(xiàn)消息確認(rèn)、順序保證、斷線重連——這些正是MQTT、STOMP等協(xié)議存在的意義。直接裸用WebSocket的團隊,往往在生產(chǎn)環(huán)境踩完所有坑后才意識到需要協(xié)議封裝。

八、學(xué)習(xí)筆記的啟示:概念清晰比架構(gòu)圖重要

這份學(xué)習(xí)筆記的價值,不在于覆蓋了多少高級主題,而在于對每個基礎(chǔ)概念的精準(zhǔn)定義。系統(tǒng)設(shè)計面試常陷入一個誤區(qū):追求分布式事務(wù)、一致性算法等"高級"話題,卻說不清負(fù)載均衡的具體策略。

真正的工程能力,體現(xiàn)在對基礎(chǔ)概念的邊界認(rèn)知:知道長輪詢的資源代價、明白LRU的失效場景、理解冪等性的實現(xiàn)成本。這些細節(jié)不會出現(xiàn)在

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關(guān)推薦
熱點推薦
晚飯七分飽被推翻了?醫(yī)生調(diào)查:過了56歲,吃飯盡量要做到這5點

晚飯七分飽被推翻了?醫(yī)生調(diào)查:過了56歲,吃飯盡量要做到這5點

蜉蝣說
2026-02-03 15:00:19
喲!兩位現(xiàn)役國手合砍5分,這水平提出沖冠?球迷:最多一輪游

喲!兩位現(xiàn)役國手合砍5分,這水平提出沖冠?球迷:最多一輪游

南海浪花
2026-04-16 09:07:21
娘家拆遷362萬沒我份,母親壽宴我不去,次日弟弟帶來一份文件

娘家拆遷362萬沒我份,母親壽宴我不去,次日弟弟帶來一份文件

紅豆講堂
2024-12-29 11:07:41
許家印多出的兩個私生子!跟誰生的?再扒恒大歌舞團

許家印多出的兩個私生子!跟誰生的?再扒恒大歌舞團

大江看潮
2026-04-16 22:20:58
和伊朗開戰(zhàn)后,美國石油出口創(chuàng)紀(jì)錄!特朗普再威脅:有能力在1小時內(nèi)摧毀伊朗的橋梁和發(fā)電廠!伊朗:鈾濃縮的程度和類型可以談

和伊朗開戰(zhàn)后,美國石油出口創(chuàng)紀(jì)錄!特朗普再威脅:有能力在1小時內(nèi)摧毀伊朗的橋梁和發(fā)電廠!伊朗:鈾濃縮的程度和類型可以談

每日經(jīng)濟新聞
2026-04-15 23:52:04
關(guān)系徹底藏不住?迪麗熱巴梁朝偉高調(diào)官宣喜訊,劉嘉玲反應(yīng)引熱議

關(guān)系徹底藏不住?迪麗熱巴梁朝偉高調(diào)官宣喜訊,劉嘉玲反應(yīng)引熱議

阿廢冷眼觀察所
2026-04-14 18:04:06
陳根:新冠之后,很多人的性功能在下降?

陳根:新冠之后,很多人的性功能在下降?

陳根談科技
2026-03-28 11:45:32
歐冠4強誕生,金球獎6選1!頭號熱門42場50球,姆巴佩押寶世界杯

歐冠4強誕生,金球獎6選1!頭號熱門42場50球,姆巴佩押寶世界杯

球場沒跑道
2026-04-16 09:07:50
解禁復(fù)出!你好,李楠!已經(jīng)等了整整3年

解禁復(fù)出!你好,李楠!已經(jīng)等了整整3年

籃球?qū)崙?zhàn)寶典
2026-04-16 23:14:02
菲總統(tǒng)候選人莫雷諾:如果當(dāng)選,我會讓菲律賓成為下一個新加坡!

菲總統(tǒng)候選人莫雷諾:如果當(dāng)選,我會讓菲律賓成為下一個新加坡!

小丸說故事
2026-03-17 14:23:29
人民幣狂飆1200點!首成全球第二結(jié)算幣,美元暴跌美財長徹底急了

人民幣狂飆1200點!首成全球第二結(jié)算幣,美元暴跌美財長徹底急了

霽寒飄雪
2026-04-16 11:44:58
光通信行業(yè)亟需的國產(chǎn)“硬通貨”:9大關(guān)鍵材料與龍頭企業(yè)全揭秘

光通信行業(yè)亟需的國產(chǎn)“硬通貨”:9大關(guān)鍵材料與龍頭企業(yè)全揭秘

林子說事
2026-04-15 19:20:06
民進黨為何敢怒不敢抓?鄭麗文背后的保護傘讓民進黨無計可施!

民進黨為何敢怒不敢抓?鄭麗文背后的保護傘讓民進黨無計可施!

有態(tài)度的何總
2026-04-16 08:49:55
特朗普,最新暗示!美伊談判、霍爾木茲海峽,大消息!原油跳水,美股爆發(fā)!

特朗普,最新暗示!美伊談判、霍爾木茲海峽,大消息!原油跳水,美股爆發(fā)!

證券時報e公司
2026-04-15 07:57:46
鴻蒙五界3月銷量啞火,問界獨大,四界陪跑,華為難救二線車企?

鴻蒙五界3月銷量啞火,問界獨大,四界陪跑,華為難救二線車企?

王新喜
2026-04-14 19:49:11
一線城市房價全面上漲!

一線城市房價全面上漲!

地產(chǎn)觀點
2026-04-16 11:49:43
鞠婧祎方回應(yīng)王子杰去世:不與爭論,生命為大!王子杰曾為其創(chuàng)造“四千年美女”標(biāo)簽

鞠婧祎方回應(yīng)王子杰去世:不與爭論,生命為大!王子杰曾為其創(chuàng)造“四千年美女”標(biāo)簽

極目新聞
2026-04-16 13:48:39
4月17日精選熱點:核聚變再次重磅利好,這些三大核心龍頭要大漲

4月17日精選熱點:核聚變再次重磅利好,這些三大核心龍頭要大漲

元芳說投資
2026-04-16 21:12:07
曼聯(lián)選帥反轉(zhuǎn)!世界最佳年輕主帥愿接手,比卡里克強太多

曼聯(lián)選帥反轉(zhuǎn)!世界最佳年輕主帥愿接手,比卡里克強太多

奶蓋熊本熊
2026-04-16 05:10:35
極氪8X明日上市:明星企業(yè)家扎堆試駕

極氪8X明日上市:明星企業(yè)家扎堆試駕

大象新聞
2026-04-16 14:29:01
2026-04-17 04:27:00
摸魚算法
摸魚算法
致力于用最前沿的AI技術(shù),換取更多發(fā)呆時間的三十歲青年。
1483文章數(shù) 16關(guān)注度
往期回顧 全部

科技要聞

趙明:智駕之戰(zhàn),看誰在大模型上更高效

頭條要聞

特朗普宣布黎以將停火后 以軍大規(guī)模空襲黎巴嫩

頭條要聞

特朗普宣布黎以將停火后 以軍大規(guī)模空襲黎巴嫩

體育要聞

皇馬拜仁踢出名局,但最搶鏡的還是他

娛樂要聞

絲芭傳媒創(chuàng)始人王子杰去世,享年63歲

財經(jīng)要聞

海爾與醫(yī)美女王互撕 換血抗衰誰的生意?

汽車要聞

空間大五個乘客都滿意?體驗嵐圖泰山X8

態(tài)度原創(chuàng)

家居
房產(chǎn)
數(shù)碼
手機
公開課

家居要聞

智能舒適 簡約風(fēng)尚

房產(chǎn)要聞

人人人人!封關(guān)后首屆消博會,擠爆了!

數(shù)碼要聞

榮耀史上最短發(fā)布會,發(fā)布榮耀史上最強MagicBook數(shù)字系列

手機要聞

OPPO Find X10:8000mAh超大電池+雙2億影像,中屏機皇實錘!

公開課

李玫瑾:為什么性格比能力更重要?

無障礙瀏覽 進入關(guān)懷版