自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

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

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

WhatsApp 每天有 100 萬(wàn)人注冊(cè),其增長(zhǎng)速度簡(jiǎn)直令人難以置信。但更為人難以想象的是:WhatsApp 每天需要支持來(lái)自 4.5 億日活躍用戶(hù)的500 億條消息,他們卻只用了32 名工程師就做到了。

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

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

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

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

單一責(zé)任原則單一責(zé)任原則

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

2、技術(shù)棧

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

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

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

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

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

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

不要重新發(fā)明輪子不要重新發(fā)明輪子

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

他們?cè)?ejabberd 之上構(gòu)建了 WhatsApp 。他們還重寫(xiě)了一些 ejabberd 核心組件來(lái)滿(mǎn)足他們的需求。此外,WhatsApp 利用 Google Push 等第三方服務(wù)來(lái)提供推送通知。

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

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

跨領(lǐng)域關(guān)注點(diǎn)跨領(lǐng)域關(guān)注點(diǎn)

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

5、可擴(kuò)展性

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

可擴(kuò)展性可擴(kuò)展性

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

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

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

6、飛輪效應(yīng)

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

持續(xù)反饋循環(huán)持續(xù)反饋循環(huán)

7、質(zhì)量測(cè)試

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

負(fù)載測(cè)試負(fù)載測(cè)試

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

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

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

工程師之間的溝通路徑工程師之間的溝通路徑


因此他們保持了較小的團(tuán)隊(duì)規(guī)?!?2名工程師。

——后記——

WhatsApp被收購(gòu)

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

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

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

責(zé)任編輯:武曉燕 來(lái)源: 51CTO技術(shù)棧
相關(guān)推薦

2023-10-24 17:25:35

2024-09-18 14:26:33

2024-03-13 08:00:00

Linux調(diào)試器應(yīng)用程序

2021-06-29 10:03:45

數(shù)據(jù)科學(xué)機(jī)器學(xué)習(xí)算法

2011-06-29 09:34:59

網(wǎng)站被K

2022-11-17 10:49:52

數(shù)字化轉(zhuǎn)型數(shù)字企業(yè)

2021-09-15 14:45:57

數(shù)字化轉(zhuǎn)型IT技術(shù)

2016-12-14 12:13:19

蘋(píng)果IOSAdobe

2022-06-15 14:33:27

大數(shù)據(jù)數(shù)據(jù)宕機(jī)云遷移

2022-03-10 14:48:54

LinuxUbuntu發(fā)行版

2025-04-14 02:00:00

標(biāo)簽頁(yè)網(wǎng)站技巧

2022-12-01 16:53:27

NPM技巧

2017-04-20 12:51:28

2017-01-05 09:59:45

2012-10-29 11:01:17

2009-12-11 09:55:34

微軟雅虎工程師

2021-01-06 15:25:02

Windows操作系統(tǒng)功能

2018-01-16 00:27:59

2018-08-21 05:03:04

NV overlay網(wǎng)絡(luò)虛擬化網(wǎng)絡(luò)

2012-11-20 10:01:40

程序員
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)