當前位置: 首頁 > 新聞資(zī)訊 > 大(dà)型網站技術架構演進路程

大(dà)型網站技術架構演進路程

發布時間:2024-02-20 0:45:53

  1. 架構方面的書(shū)籍
  2. 假如有10億人同時去(qù)一(yī)個網站浏覽,都按F5不松手會怎樣?
  3. 架構方面的書(shū)籍

一(yī)、架構方面的書(shū)籍

一(yī)、大(dà)型網站架構系列

第一(yī)本:《大(dà)型網站技術架構:核心原理與案例分(fēn)析》

這是本算是國内大(dà)型網站架構的經典之作,由阿裏人李智慧創作,聽(tīng)名字就知(zhī)道本書(shū)很有智慧。主要從大(dà)型網站架構的特點,架構目标(高性能,高可用,可伸縮等)基本理論講起,并介紹了幾個很有特色的案例。

之前群内分(fēn)享的大(dà)型網站架構系列的基礎理論大(dà)部分(fēn)出自此書(shū)。

第二本:《大(dà)型網站系統與java中(zhōng)間件實踐》

同樣出自阿裏的技術牛人。此書(shū)對分(fēn)布式系統的演進做了較好的介紹。對常用中(zhōng)間件(服務框架,數據訪問層,消息中(zhōng)間件)做了比較深入的講解。(原理到實踐都有了)

第三本:《大(dà)型分(fēn)布式網站架構設計與實踐》,很抱歉本書(shū)也出自阿裏系。

對面向服務的架構,分(fēn)布式基礎設施(緩存,持久化,消息系統,搜索引擎(lucence,solr)),互聯網安全架構,系統穩定性,數據分(fēn)析等做了較好的講解。

以上三本書(shū),都出自阿裏系,有理論有實踐,如果要學到知(zhī)識,還需要多讀,多想,多實踐。比如第一(yī)本,個人看了至少5遍以上。其他兩天也在三遍左右。

第四本:《web信息架構——設計大(dà)型網站》

可以較系統的建立網站信息架構設計的思想。對思考如何設計一(yī)個大(dà)型網站比較有幫助。

信息架構,注意這幾個詞所涉及的知(zhī)識。

第五本:《高性能網站建設》,對web前端架構做了非常好的講解。

注意此處的前端不隻是js,css,html,是指業務邏輯層之前的部分(fēn)。包括緩存,dns等。

第六本:《實用負載均衡技術:網站性能優化攻略》,本書(shū)較詳細的介紹了負載均衡,緩存代理等知(zhī)識,對系統了解負載均衡技術有幫助。

第七本:《高性能電(diàn)子商(shāng)務平台構建:架構、設計與開(kāi)發》,本書(shū)可以作爲功能架構參考,因爲他講的是國内一(yī)個開(kāi)源商(shāng)城的架構。一(yī)方面作者可能是爲了推廣他的開(kāi)源商(shāng)城,因此建議初學者或者想了解此開(kāi)源系統的人學習

二、假如有10億人同時去(qù)一(yī)個網站浏覽,都按F5不松手會怎樣?

網站會崩潰,任何一(yī)個網站都不可能承受的住。

我(wǒ)們可以粗略地估計一(yī)下(xià),普通鍵盤的刷新速度最快可以達到1000次每秒,考慮到有很多軟件并不需要這麽快的響應速度,這些軟件會降低這個頻(pín)率來節省電(diàn)腦資(zī)源。我(wǒ)自己用谷哥浏覽器試了一(yī)下(xià),按f12打開(kāi)控制台選擇network選項,按住f5不松手(直接在浏覽器界面按住f5隻會刷新一(yī)次,我(wǒ)想這跟題主的本意可能不符)這時候控制台飛快刷新,目測每秒幾十次,按10次算的話(huà)十億人按住f5不松手産生(shēng)的浏覽量可以達到100億每秒。

我(wǒ)們再看一(yī)下(xià)可能是世界上短時間内并發最高的網站——雙十一(yī)時候的淘寶。具體(tǐ)的數據我(wǒ)們沒有不過我(wǒ)們可以根據網上提供的一(yī)些數據估算一(yī)下(xià)。淘寶訪問最高的時候應該就是十一(yī)号零點剛過那幾分(fēn)鍾,事實上淘寶交易額增速最快的也是那幾分(fēn)鍾,我(wǒ)猜測每秒峰值訂單也是發生(shēng)在這個時候,這個數據是54.4萬筆每秒。假設一(yī)千個人裏邊有一(yī)個下(xià)單的那麽當時的浏覽量大(dà)概5億每秒。實際上這個時候的淘寶雖然沒有崩潰,但是很多頁面已經出現了延遲,有很多數據已經刷不出來。而題中(zhōng)的條件遠遠超過這個數字,淘寶也是完全承受不住這個訪問量的(實際上我(wǒ)已經盡量低估了十億人按住f5造成的訪問量,高估了淘寶在雙十一(yī)承受的訪問量)。我(wǒ)覺得沒有任何一(yī)個網站可以承受這麽大(dà)的訪問量。

實際上十億人接近世界人口的七分(fēn)之一(yī),根本不會有一(yī)個頁面可以吸引這麽多人同時訪問,網站在設計的時候也完全不會考慮如此高的并發。

現實中(zhōng)的網站訪問遠比這個複雜(zá),這裏隻是做一(yī)個很粗略估計來讨論一(yī)下(xià),歡迎大(dà)家提出不同意見。

看到有朋友在評論中(zhōng)提出疑問,我(wǒ)自己測試了一(yī)下(xià),然後看了下(xià)apache的日志(zhì)21次,隻代表我(wǒ)自己的測試,不保證準确,給大(dà)家一(yī)個參考。

傳說中(zhōng)的洪水攻擊,其效果就是這樣,那會瞬間阻塞網絡,導緻網站訪問慢(màn)或訪問不到,目前來看也隻有阿裏有可能承受住

10億人同時浏覽一(yī)個網站,并且還按f5進行不斷刷新,現實當中(zhōng)沒有這樣的網站,如果有的話(huà)一(yī)定是會崩潰的!

但是現實中(zhōng)和題主假設最接近的網站有,誰?那就是經常被全國人民在春運時噴的12306,我(wǒ)們不妨來看看當前12306的流量數據。

2018年的時候鐵路官方提供過當年春運時12306的頁面流量次數,高峰時期單日pv是1500億次,平均到每小(xiǎo)時則是1500/17=88億次(注:12306晚23點到第二天6天不售票(piào),這裏我(wǒ)就去(qù)掉了這7小(xiǎo)時)。也就是說12306每小(xiǎo)時88億的訪問量,每分(fēn)鍾則相當于1.47億的訪問量。

這個數據量已經是相當驚人了,即便是淘寶雙11也是比不上12306的。同時,這裏還請注意,鐵路官方這裏僅僅是說的頁面訪問量,如果加上數據庫的查詢、出票(piào)等等功能,那麽12306所承擔的壓力會更加大(dà),負荷也更重,因此全球範圍内真正牛逼的網站,能承受全國億人同時沖擊的就隻有它了,剩下(xià)才是淘寶雙11的高并發流量沖擊。

可以說當前的12306系統超越當前任何一(yī)個秒殺系統。

目前12306所承受的訪問量還在逐步遞增,因爲春運走鐵路的人群也是逐年遞增,很多人疑問爲何12306開(kāi)始線上購票(piào)後怎麽票(piào)越來越難買,還不如當年線下(xià)排隊購票(piào)。其實很多人是忽視了鐵路春運人數增長這個現象。

從春運最開(kāi)始的1億人次,逐年增長到現在破4億人次,票(piào)顯然是越來越難買。這個數字增長其實已經反映了鐵路這些年來的運力增長,但這個運力的增長趕不上越來越多民衆的出行需求。

今年12306又(yòu)出現了崩潰的情況,顯然買票(piào)的人多了。

lscssh 科技 官觀點:

綜合技術難度來說,12306實現的技術遠比淘寶電(diàn)商(shāng)平台要複雜(zá),如果你真的懂技術就會驚歎12306目前所取得的成績,否則在你眼裏肯定是不如淘寶天貓。

首先祝賀我(wǒ)國人民都有閑情雅緻去(qù)同一(yī)個網站浏覽。

這個問題,放(fàng)在8年之前,答案是癱,你會在網站高峰是很容易看到網站不可訪問的提示;放(fàng)在今天,答案是要恭喜您,這個級别的網站的架構師們,已經同樣懷着一(yī)顆閑情雅緻的心情,把這個問題解決了;就算是自己沒解決,也會找武林高手把這事兒解決。最直觀的例子就是我(wǒ)國的12306網站。

早些年,當12306在線購票(piào)系統剛剛公布不久,春運來了。來自五湖四海的弟(dì)兄們懷着回家團圓的熱情,一(yī)起按f5刷票(piào),把網站搞癱了。沒錯癱了。那個時候,能刷到票(piào)的,除了手速,最關鍵的是運氣。

所以從那時起,關于12306的各種負面消息一(yī)股腦地湧現出來。大(dà)到系統架構、服務器;小(xiǎo)到用戶體(tǐ)驗。甚至在互聯網産品經理的交流沙龍上,12306的網站改版竟然成了反面教材,被肆意使用。

12306經曆了最初期的磨難,但依然要面對無法躲避的春運、國慶黃金周等難關。12306召集有大(dà)數據并發經驗的互聯網公司們的大(dà)牛、架構師們,爲網站獻計獻策,充分(fēn)優化系統架構;具體(tǐ)改了多少架構;做了多少重構不得而知(zhī)。而經過時間的沉澱,大(dà)家能夠普遍認同的是,12306的數據關系,往往比常見的互聯網公司要複雜(zá)的多。而經曆了大(dà)并發的多次洗禮,大(dà)家感覺到,系統便穩定了很多。

有一(yī)年春運,購票(piào)系統和以往相比,簡直可以用絲滑來形容。12306甚至沒給大(dà)家留下(xià)什麽癱瘓的印象。事後,12306和阿裏雲宣布戰略合作。12306向阿裏雲提出了嚴峻的挑戰,而阿裏雲不負衆望,爲12306保駕護航。

其實,大(dà)并發一(yī)直是信息時代不得不面對的一(yī)個問題。12306隻不過是一(yī)個例子,時至今日,大(dà)并發已經衍生(shēng)出更多複雜(zá)的場景。雙11我(wǒ)們在暢快購物(wù)的同時,偶爾在一(yī)瞬間還是會感到大(dà)并發帶給網站的壓力。隻不過,用戶已經更加從容;因爲他們相信,網站有這個技術馬上會将癱瘓的服務恢複。等下(xià)下(xià)就好~

10億用戶并發訪問,此等流量目前也還沒有一(yī)個大(dà)型網站能承載。 日前12306就出現了崩潰的現象,有人猜測疑似因流量過大(dà)導緻。“12306 服務”承受着這個世界上任何秒殺系統都無法超越的qps,上百萬的并發再正常不過了!不過大(dà)型網站的訪問量大(dà)、并發量高、海量數據等方面如果處理不來,沒法解決多用戶高并發訪問問題還是要崩了。

目前淘寶的高并發流量承載水平。 每年的雙十一(yī)狂歡節是階段性高并發訪問的典型代表,1分(fēn)36秒,交易額沖到 100 億 !高并發系統架構通常采用分(fēn)布式集群部署,服務上層有着層層負載均衡。根據不同服務器負載能力和配置策略來均衡分(fēn)配訪問流量,保證系統的高可用性。當然,其中(zhōng)還有容災系統的輔助作用。

2019雙十一(yī)來說,天貓淘寶每秒交易創建峰值54.5萬筆、實時計算消息處理峰值25.51億條/秒,而用戶在購物(wù)支付中(zhōng)未感受到抖動、流暢平穩。支付寶技術自主研發的技術之一(yī)、分(fēn)布式數據庫oceanbase再次刷新數據庫處理峰值,達6100萬次每秒。

服務器性能、程序并發處理能力有限。網站在大(dà)并發,高負載時就會有癱瘓,拒絕服務的崩潰現象出現。對于“10億人同時去(qù)一(yī)個網站浏覽”,十億級别的并發訪問,放(fàng)現在任意一(yī)大(dà)型網站都難以承載。

負載均衡、合理的使用并發和異步、發揮服務器多核優勢…還仍是當下(xià)研究和 探索 的重要課題。因需求而演進,最初期的單機架構,到容器化技術實現運行環境隔離(lí)與動态服務管理,在現在系統還可部署到公有雲上,利用公有雲的海量機器資(zī)源,解決動态硬件資(zī)源的問題。并發到千萬級億數級别并發情況也是服務端的架構的不斷演進過程。

如果是測試,額,好像這個場景也隻會是測試,,看網站類型吧,如果隻是浏覽網頁,做靜态緩存,加不算錢的cdn完全沒問題

主根服務器,在美國,網絡運維預算中(zhōng)國工(gōng)程師也有傑出吊炸天的專家,在使用網絡到現在,目前沒有聽(tīng)到過,主根服務器卡爆,您用的網絡,是付了錢的,您出多少錢,别人爲你提供多少優質的網絡服務,網絡工(gōng)程師這點常識不可能沒有,不預留兼容空間,常按鍵盤f5,持續刷新,取決您的電(diàn)腦cpu是否足夠強大(dà),不會影響到别人使用網絡的,過流使用網絡,各大(dà)網絡運營商(shāng)後台,會給您限速的,不可能給你一(yī)根網線,讓你去(qù)開(kāi)網吧,您出多少錢,您就享受怎樣的有限網絡限制服務。一(yī)塊錢成本,想要博得四兩撥千斤,肯定不現實,網絡工(gōng)程師可不是光吃白(bái)米飯不需要菜的主,不會給黑客留後門讓您無節制的使用有限網絡,誰會做虧本買賣,所以您試圖卡爆主根服務器想法,不會實現。

很有趣的一(yī)個問題,從側面引申出了用戶與服務器之間的訪問關系,究竟有哪些因素會影響我(wǒ)們的訪問呢?題目中(zhōng)已經預示了這個問題:

那麽,就從這兩個方面來簡單分(fēn)析一(yī)下(xià),是否存在同時支撐10億用戶訪問的網站吧!

一(yī)、關于網站流量的問題讨論

随着互聯網的快速發展,網站内容不再單調,一(yī)個頁面存在圖片、音頻(pín)、視頻(pín)等多種元素,這給傳輸的帶寬帶來了一(yī)定的壓力。

我(wǒ)們不按照視頻(pín)播放(fàng)的特殊情況來計算,僅僅按照一(yī)般網頁打開(kāi)高峰值的流量來進行估算。鑒于高清圖片,語音,flash等因素,初步估計峰值帶寬需要200k每秒。那麽,假若10億人同時訪問需要多少的帶寬呢?大(dà)家不要急,容我(wǒ)拿出計算器好好計算一(yī)下(xià),爲了便于計算,暫不采用1024的進位,使用約爲1000的進位(1m=1024k)。瞬時産生(shēng)的峰值流量爲200000g,也就是200t。當前網絡傳輸最高已經支持100g,但是實際應用場景較少,我(wǒ)們按照最理想100g來計算。

那麽單台服務器帶寬肯定無法滿足10億人的同時使用,需要200000g除以100g台服務器才能完成這一(yī)目标,顯然2000台服務器的搭建并不現實(不是無法實現,隻不過成本過于昂貴)。

二、關于程序、服務器性能能否支持的問題

我(wǒ)們拿12306、淘寶商(shāng)城這兩個高流量的網站舉例,您就會知(zhī)道10億人同時訪問所帶來的壓力。

一(yī)年一(yī)度的春節就要來臨,也到了12306最容易崩潰的時間段。這部,前不久12306疑似又(yòu)出現了崩潰的問題。我(wǒ)們先來看下(xià)2018年時12306高峰期的統計數字:

請記住每秒164.8萬次這個數字!

再來說說淘寶,淘寶最具參考價值的就是雙十一(yī)時的用戶訪問量。據相關統計數字顯示,淘寶雙十一(yī)峰值用戶訪問數據是每秒4200萬次。即便如此,淘寶當晚依然如臨大(dà)敵,全力保障避免網絡以及服務器出現問題。

每秒164.8萬次、每秒4200萬次與每秒10億次來對比,可想而知(zhī)這個數據的恐懼。甚至這裏令我(wǒ)想到了dos攻擊(拒絕服務,通過頻(pín)繁占用資(zī)源最終導緻網絡或服務器崩潰),10億人同時訪問遠比病毒攻擊要來得更加可怕!

結論是當前不存在同時支持10億人訪問的網站!

對于10億用于同時接入某網站的問題,您怎麽看?

歡迎大(dà)家留言讨論,喜歡的點點關注。

很有想象力的一(yī)個問題,十億人同時刷新一(yī)個網站,至少目前爲止還沒有網站能夠架得住,按照現在阿裏巴巴雲計算的能力講,服務器的組合能力已經優化到一(yī)種非常合理化的境界,單純的依靠計算能力提升的空間已經非常有限了,如果單單是爲了應對這些人的沖擊構建大(dà)量的服務器,毫無疑問将會産生(shēng)極大(dà)的浪費(fèi),任何企業都不會爲了應對這一(yī)攻擊而購置大(dà)量的服務器。

早期的雲計算産生(shēng)其實也是一(yī)種偶然的因素,亞馬遜早期爲了應對服務器巨大(dà)的沖擊,購置了大(dà)量的服務器,結果發現儲備的服務器太多了,就想着如何處理這些多餘或者利用這些服務器的額外(wài)用處,于是想着如果把這些服務器構建起來給一(yī)些中(zhōng)小(xiǎo)企業提供服務,而且這些服務器之間還可以進行資(zī)源的共享,這就是早期雲計算産生(shēng)的簡單的需求,但随着功能的延申雲計算所起到的作用也越來越大(dà),亞馬遜在這方面投入的精力也是越來越大(dà),但成效也越來越明顯,成爲亞馬遜市值飙升的重要參照因素,而且雲計算的誕生(shēng)對于甲骨文的數據庫有非常大(dà)的沖擊,亞馬遜已經宣傳旗下(xià)的數據庫切換到雲計算的模式,相信不久的将來阿裏巴巴也會完成這一(yī)使命。

同時訪問一(yī)個網站,考驗的就是網站的負載均衡能力,現在網站已經不是單一(yī)的服務器構造了,不同地區的訪問會彙總到不同的區域裏面,最後通過數據的交互将數據彙總到總的主控服務器上,然後做出具體(tǐ)的反應從理論上講,如果想要快速的反應就要求在接受到數據一(yī)瞬間就要準确到傳遞到正确的服務器上,關鍵是第一(yī)步如果訪問量過大(dà),第一(yī)步接收的服務器可能直接崩潰或者數據被排隊等待了,可以想象在雙11期間阿裏巴巴啓動的服務器的數量要多于平時,同時阿裏巴巴已經把服務器遷移到阿裏雲上了,對于服務器的管理能力又(yòu)進一(yī)步增強了,同時又(yòu)增加了很多的備用服務器來支撐,畢竟阿裏雲的業務能力也在進一(yī)步增強,所以增加備用的服務器也是業務上的需要。

增加服務器的負載能力最簡單直接有效的辦法就是增加服務器的數量,但這種方式對于成本的要求還是非常高,每家都不會去(qù)做這種事情,畢竟如果隻是單純的使用幾次這種成本的代價太高,之前的購票(piào)網站12306經常出現宕機的情況,最後還是阿裏巴巴的阿裏雲一(yī)起協助解決了這類沖擊的問題,其實訂票(piào)沖擊相比雙11的沖擊還是差了許多,解決并發問題的能力上在國内範圍最厲害的企業當屬于阿裏巴巴,12306把查詢的功能部署在阿裏雲上極大(dà)降低12306主要服務器的壓力,同時也是對阿裏巴巴負載能力一(yī)個極大(dà)的檢驗。

即使阿裏巴巴已經在解決負載能力上有着非常豐富的經驗,但是10億用戶同時刷新網站的做法,即使放(fàng)在阿裏巴巴面前也是一(yī)個極大(dà)的難題,不僅僅是技術能力的問題關鍵還是在于是否有必要購置這些服務器,希望能幫到你。

按住f5不算啥,部分(fēn)已加載的是讀取本地緩存,ctrl+f5,shift+command+r才是毀滅性的吧

一(yī)、架構方面的書(shū)籍

一(yī)、大(dà)型網站架構系列

第一(yī)本:《大(dà)型網站技術架構:核心原理與案例分(fēn)析》

這是本算是國内大(dà)型網站架構的經典之作,由阿裏人李智慧創作,聽(tīng)名字就知(zhī)道本書(shū)很有智慧。主要從大(dà)型網站架構的特點,架構目标(高性能,高可用,可伸縮等)基本理論講起,并介紹了幾個很有特色的案例。

之前群内分(fēn)享的大(dà)型網站架構系列的基礎理論大(dà)部分(fēn)出自此書(shū)。

第二本:《大(dà)型網站系統與java中(zhōng)間件實踐》

同樣出自阿裏的技術牛人。此書(shū)對分(fēn)布式系統的演進做了較好的介紹。對常用中(zhōng)間件(服務框架,數據訪問層,消息中(zhōng)間件)做了比較深入的講解。(原理到實踐都有了)

第三本:《大(dà)型分(fēn)布式網站架構設計與實踐》,很抱歉本書(shū)也出自阿裏系。

對面向服務的架構,分(fēn)布式基礎設施(緩存,持久化,消息系統,搜索引擎(lucence,solr)),互聯網安全架構,系統穩定性,數據分(fēn)析等做了較好的講解。

以上三本書(shū),都出自阿裏系,有理論有實踐,如果要學到知(zhī)識,還需要多讀,多想,多實踐。比如第一(yī)本,個人看了至少5遍以上。其他兩天也在三遍左右。

第四本:《web信息架構——設計大(dà)型網站》

可以較系統的建立網站信息架構設計的思想。對思考如何設計一(yī)個大(dà)型網站比較有幫助。

信息架構,注意這幾個詞所涉及的知(zhī)識。

第五本:《高性能網站建設》,對web前端架構做了非常好的講解。

注意此處的前端不隻是 js,css,html,是指業務邏輯層之前的部分(fēn)。包括緩存,dns等。

第六本:《實用負載均衡技術:網站性能優化攻略》,本書(shū)較詳細的介紹了負載均衡,緩存代理等知(zhī)識,對系統了解負載均衡技術有幫助。

第七本:《高性能電(diàn)子商(shāng)務平台構建:架構、設計與開(kāi)發》,本書(shū)可以作爲功能架構參考,因爲他講的是國内一(yī)個開(kāi)源商(shāng)城的架構。一(yī)方面作者可能是爲了推廣他的開(kāi)源商(shāng)城,因此建議初學者或者想了解此開(kāi)源系統的人學習

Top