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

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

WhatsApp 僅用 32 名工程師就能支持每天 500 億條消息的八個原因

來源: 責(zé)編: 時間:2023-10-13 14:37:04 257觀看
導(dǎo)讀2008 年 1 月,美國加利福尼亞州。一位名為 Jan Koum 的雅虎工程師,在申請 Facebook 職位時被拒了。這當(dāng)然不是故事的終點(diǎn)——他第二年入手了一部 iPhone,并立即認(rèn)識到新 App Store 的巨大潛力。因此,他決定與雅虎的一些前

2008 年 1 月,美國加利福尼亞州。一位名為 Jan Koum 的雅虎工程師,在申請 Facebook 職位時被拒了。NCY28資訊網(wǎng)——每日最新資訊28at.com

這當(dāng)然不是故事的終點(diǎn)——他第二年入手了一部 iPhone,并立即認(rèn)識到新 App Store 的巨大潛力。因此,他決定與雅虎的一些前同事一起開發(fā)一款即時通訊工具,并將其命名為 WhatsApp,據(jù)稱這個名字是他在朋友家的廚房討論了幾個小時就確定的。WhatsApp 背后的愿景是取代昂貴的短信。NCY28資訊網(wǎng)——每日最新資訊28at.com

WhatsApp 每天有 100 萬人注冊,其增長速度簡直令人難以置信。但更為人難以想象的是:WhatsApp 每天需要支持來自 4.5 億日活躍用戶的500 億條消息,他們卻只用了32 名工程師就做到了。NCY28資訊網(wǎng)——每日最新資訊28at.com

盡管產(chǎn)品爆炸性增長是一個好現(xiàn)象,但 Jan Koum 和 WhatsApp 團(tuán)隊必須采用最佳工程實(shí)踐來克服挑戰(zhàn)。NCY28資訊網(wǎng)——每日最新資訊28at.com

WhatsApp 滿足極端可擴(kuò)展性的工程實(shí)踐的 8 點(diǎn)原則如下。NCY28資訊網(wǎng)——每日最新資訊28at.com

1、單一職責(zé)原則

他們只將產(chǎn)品的重點(diǎn)放在核心功能上——消息傳遞,并且沒有費(fèi)心建立廣告網(wǎng)絡(luò)或社交媒體平臺。NCY28資訊網(wǎng)——每日最新資訊28at.com

單一責(zé)任原則單一責(zé)任原則NCY28資訊網(wǎng)——每日最新資訊28at.com

他們還不惜一切代價消除了功能蔓延。當(dāng)你向產(chǎn)品添加過多的功能時,就會發(fā)生功能蠕變。并使其難以使用。此外,他們更注重 WhatsApp 的可靠性。NCY28資訊網(wǎng)——每日最新資訊28at.com

2、技術(shù)棧

他們使用 Erlang 構(gòu)建 WhatsApp 服務(wù)器的核心功能。因?yàn)樗?span style="display:none">NCY28資訊網(wǎng)——每日最新資訊28at.com

  • 體積小,可擴(kuò)展性高
  • 并且支持熱加載

線程是 Erlang 的原生特性。但在Java或C++中,線程屬于操作系統(tǒng)。所以Erlang中沒有必要保存整個CPU狀態(tài)。這使得上下文切換更便宜。NCY28資訊網(wǎng)——每日最新資訊28at.com

熱加載可以更輕松地部署代碼更改,而無需重新啟動服務(wù)器;或者流量重定向。簡而言之,熱加載提供了高可用性。NCY28資訊網(wǎng)——每日最新資訊28at.com

3、為什么要重新發(fā)明輪子?

不要重新發(fā)明輪子- 要么使用開源,要么購買商業(yè)解決方案。NCY28資訊網(wǎng)——每日最新資訊28at.com

不要重新發(fā)明輪子不要重新發(fā)明輪子NCY28資訊網(wǎng)——每日最新資訊28at.com

Ejabberd 是一個用 Erlang 編寫的開源實(shí)時消息服務(wù)器。NCY28資訊網(wǎng)——每日最新資訊28at.com

他們在 ejabberd 之上構(gòu)建了 WhatsApp 。他們還重寫了一些 ejabberd 核心組件來滿足他們的需求。此外,WhatsApp 利用 Google Push 等第三方服務(wù)來提供推送通知。NCY28資訊網(wǎng)——每日最新資訊28at.com

4、跨領(lǐng)域的關(guān)注

他們非常重視跨領(lǐng)域的關(guān)注,以提高產(chǎn)品質(zhì)量。橫切關(guān)注點(diǎn)是影響產(chǎn)品許多部分的事情。并且很難分開。例如,監(jiān)視和警報服務(wù)的運(yùn)行狀況。NCY28資訊網(wǎng)——每日最新資訊28at.com

跨領(lǐng)域關(guān)注點(diǎn)跨領(lǐng)域關(guān)注點(diǎn)NCY28資訊網(wǎng)——每日最新資訊28at.com

他們通過持續(xù)集成和持續(xù)交付改進(jìn)了軟件開發(fā)流程;持續(xù)集成是將代碼更改定期合并到中央存儲庫的過程;持續(xù)交付是將代碼部署到測試或生產(chǎn)環(huán)境的過程。NCY28資訊網(wǎng)——每日最新資訊28at.com

5、可擴(kuò)展性

WhatsApp使用對角縮放來降低成本和操作復(fù)雜性;水平擴(kuò)展是增加資源池中機(jī)器數(shù)量的過程;垂直擴(kuò)展是增加現(xiàn)有機(jī)器容量(例如 CPU 或內(nèi)存)的過程;對角線縮放是水平和垂直縮放的混合。計算資源可以垂直和水平添加。NCY28資訊網(wǎng)——每日最新資訊28at.com

可擴(kuò)展性可擴(kuò)展性NCY28資訊網(wǎng)——每日最新資訊28at.com

他們在 FreeBSD 操作系統(tǒng)上運(yùn)行 WhatsApp 服務(wù)器。因?yàn)樗麄冎霸?Yahoo 工作時就有過使用 FreeBSD 的經(jīng)驗(yàn)。此外,F(xiàn)reeBSD 還提供了可靠的網(wǎng)絡(luò)堆棧。NCY28資訊網(wǎng)——每日最新資訊28at.com

他們還對 FreeBSD 進(jìn)行了微調(diào),以容納每臺服務(wù)器超過 200 萬個連接。并修改了文件、套接字等內(nèi)核參數(shù)。NCY28資訊網(wǎng)——每日最新資訊28at.com

他們過度配置服務(wù)器來處理突發(fā)的流量峰值并為故障留出空間。例如,網(wǎng)絡(luò)分區(qū)或硬件故障等故障。NCY28資訊網(wǎng)——每日最新資訊28at.com

6、飛輪效應(yīng)

他們測量了 CPU、上下文切換和系統(tǒng)調(diào)用等指標(biāo)。然后找出并消除瓶頸。_ 他們定期這樣做。持續(xù)的反饋周期極大地提高了 WhatsApp 的性能。NCY28資訊網(wǎng)——每日最新資訊28at.com

持續(xù)反饋循環(huán)持續(xù)反饋循環(huán)NCY28資訊網(wǎng)——每日最新資訊28at.com

7、質(zhì)量測試

WhatsApp 團(tuán)隊使用負(fù)載測試來識別單點(diǎn)故障。負(fù)載測試是測量系統(tǒng)在預(yù)期負(fù)載下性能的過程。NCY28資訊網(wǎng)——每日最新資訊28at.com

負(fù)載測試負(fù)載測試NCY28資訊網(wǎng)——每日最新資訊28at.com

他們使用人工生產(chǎn)流量和 DNS 配置更改來進(jìn)行負(fù)載測試。NCY28資訊網(wǎng)——每日最新資訊28at.com

8、團(tuán)隊規(guī)模保持克制

隨著團(tuán)隊規(guī)模的擴(kuò)大,工程師之間的溝通路徑呈二次方增長。這是生產(chǎn)力下降的一個原因。NCY28資訊網(wǎng)——每日最新資訊28at.com

工程師之間的溝通路徑工程師之間的溝通路徑NCY28資訊網(wǎng)——每日最新資訊28at.com


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

因此他們保持了較小的團(tuán)隊規(guī)模——32名工程師。NCY28資訊網(wǎng)——每日最新資訊28at.com

——后記——

WhatsApp被收購

WhatsApp 是市場上最成功的即時通訊工具之一。2014 年 2 月,拒絕給 Jan Koum 發(fā)放 Offer 的 Facebook ,最終以高達(dá) 190 億美元的價格收購了 WhatsApp。NCY28資訊網(wǎng)——每日最新資訊28at.com

據(jù)福布斯報道,到 2023 年,Jan Koum 的凈資產(chǎn)將達(dá)到 140 億美元。NCY28資訊網(wǎng)——每日最新資訊28at.com

原文鏈接:https://newsletter.systemdesign.one/p/whatsapp-engineering?actinotallow=shareNCY28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-13548-0.htmlWhatsApp 僅用 32 名工程師就能支持每天 500 億條消息的八個原因

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

上一篇: 面試薪水被壓?那是你還不懂多線程和高并發(fā)

下一篇: 硬核 JVM 壓縮指針詳解

標(biāo)簽:
  • 熱門焦點(diǎn)
Top 主站蜘蛛池模板: 自治县| 丹凤县| 吴忠市| 成安县| 镇巴县| 邓州市| 房产| 科尔| 六枝特区| 华蓥市| 新化县| 上栗县| 灯塔市| 永济市| 来安县| 合江县| 临漳县| 崇礼县| 江津市| 垦利县| 桂林市| 谷城县| 苍山县| 东山县| 克山县| 页游| 扎赉特旗| 瑞丽市| 澄城县| 称多县| 仁怀市| 达孜县| 荣昌县| 富源县| 阳原县| 凤翔县| 余江县| 清丰县| 寻乌县| 新竹县| 邮箱|