日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

這篇文章概述了 WhatsApp 聯(lián)合創(chuàng)始人 Jan Koum 的令人難以置信的創(chuàng)業(yè)故事、以及用于擴(kuò)展 WhatsApp 的工程技術(shù)。想要研究其可擴(kuò)展性模式的朋友不妨分享這篇文章。

2008 年 1 月,美國加利福尼亞州。一位名為 Jan Koum 的雅虎工程師,在申請 Facebook 職位時(shí)被拒了。

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

WhatsApp 每天有 100 萬人注冊,其增長速度簡直令人難以置信。但更為人難以想象的是:WhatsApp 每天需要支持來自 4.5 億日活躍用戶的500 億條消息,他們卻只用了32 名工程師就做到了。

盡管產(chǎn)品爆炸性增長是一個(gè)好現(xiàn)象,但 Jan Koum 和 WhatsApp 團(tuán)隊(duì)必須采用最佳工程實(shí)踐來克服挑戰(zhàn)。

WhatsApp 滿足極端可擴(kuò)展性的工程實(shí)踐的 8 點(diǎn)原則如下。

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

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

WhatsApp 僅用 32 名工程師就能支持每天 500 億條消息的八個(gè)原因單一責(zé)任原則

他們還不惜一切代價(jià)消除了功能蔓延。當(dāng)你向產(chǎn)品添加過多的功能時(shí),就會(huì)發(fā)生功能蠕變。并使其難以使用。此外,他們更注重 WhatsApp 的可靠性。

2、技術(shù)棧

他們使用 Erlang 構(gòu)建 WhatsApp 服務(wù)器的核心功能。因?yàn)樗?/p>

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

線程是 Erlang 的原生特性。但在JAVA或C++中,線程屬于操作系統(tǒng)。所以Erlang中沒有必要保存整個(gè)CPU狀態(tài)。這使得上下文切換更便宜。

熱加載可以更輕松地部署代碼更改,而無需重新啟動(dòng)服務(wù)器;或者流量重定向。簡而言之,熱加載提供了高可用性。

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

不要重新發(fā)明輪子- 要么使用開源,要么購買商業(yè)解決方案。

WhatsApp 僅用 32 名工程師就能支持每天 500 億條消息的八個(gè)原因不要重新發(fā)明輪子

Ejabberd 是一個(gè)用 Erlang 編寫的開源實(shí)時(shí)消息服務(wù)器。

他們在 ejabberd 之上構(gòu)建了 WhatsApp 。他們還重寫了一些 ejabberd 核心組件來滿足他們的需求。此外,WhatsApp 利用 google Push 等第三方服務(wù)來提供推送通知。

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

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

WhatsApp 僅用 32 名工程師就能支持每天 500 億條消息的八個(gè)原因跨領(lǐng)域關(guān)注點(diǎn)

他們通過持續(xù)集成和持續(xù)交付改進(jìn)了軟件開發(fā)流程;持續(xù)集成是將代碼更改定期合并到中央存儲(chǔ)庫的過程;持續(xù)交付是將代碼部署到測試或生產(chǎn)環(huán)境的過程。

5、可擴(kuò)展性

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

WhatsApp 僅用 32 名工程師就能支持每天 500 億條消息的八個(gè)原因可擴(kuò)展性

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

他們還對 FreeBSD 進(jìn)行了微調(diào),以容納每臺(tái)服務(wù)器超過 200 萬個(gè)連接。并修改了文件、套接字等內(nèi)核參數(shù)。

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

6、飛輪效應(yīng)

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

WhatsApp 僅用 32 名工程師就能支持每天 500 億條消息的八個(gè)原因持續(xù)反饋循環(huán)

7、質(zhì)量測試

WhatsApp 團(tuán)隊(duì)使用負(fù)載測試來識(shí)別單點(diǎn)故障。負(fù)載測試是測量系統(tǒng)在預(yù)期負(fù)載下性能的過程。

WhatsApp 僅用 32 名工程師就能支持每天 500 億條消息的八個(gè)原因負(fù)載測試

他們使用人工生產(chǎn)流量和 DNS 配置更改來進(jìn)行負(fù)載測試。

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

隨著團(tuán)隊(duì)規(guī)模的擴(kuò)大,工程師之間的溝通路徑呈二次方增長。這是生產(chǎn)力下降的一個(gè)原因。

WhatsApp 僅用 32 名工程師就能支持每天 500 億條消息的八個(gè)原因工程師之間的溝通路徑

 

因此他們保持了較小的團(tuán)隊(duì)規(guī)模——32名工程師。

——后記——

WhatsApp被收購

WhatsApp 是市場上最成功的即時(shí)通訊工具之一。2014 年 2 月,拒絕給 Jan Koum 發(fā)放 Offer 的 Facebook ,最終以高達(dá) 190 億美元的價(jià)格收購了 WhatsApp。

據(jù)福布斯報(bào)道,到 2023 年,Jan Koum 的凈資產(chǎn)將達(dá)到 140 億美元。

原文鏈接:https://newsletter.systemdesign.one/p/whatsapp-engineering?actinotallow=share

分享到:
標(biāo)簽:WhatsApp
用戶無頭像

網(wǎng)友整理

注冊時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評(píng)定2018-06-03

通用課目體育訓(xùn)練成績評(píng)定