久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

大型網(wǎng)站技術(shù)架構(gòu)(1)

 晨曦月V5 2017-07-12

來自:Arno 的專欄 - SegmentFault

鏈接:https://segmentfault.com/a/1190000007390358(點擊尾部閱讀原文前往)


文章參考自:李智慧的《大型網(wǎng)站技術(shù)架構(gòu)》


網(wǎng)站都是從小網(wǎng)站一步一步發(fā)展為大型網(wǎng)站的,而這之中的挑戰(zhàn)主要來自于龐大的用戶,、安全環(huán)境惡劣,、高并發(fā)的訪問和海量的數(shù)據(jù),任何簡單的業(yè)務(wù)處理,,一旦需要處理數(shù)以 P 計的數(shù)據(jù)和面對數(shù)以億計的用戶時,,問題就會變的很棘手。


下面我們就來說說這個演變過程:


01初始階段


大型網(wǎng)站都是由小型網(wǎng)站演變而來的,,網(wǎng)站架構(gòu)也一樣


小型網(wǎng)站最開始沒有太多人訪問,,只需要一臺服務(wù)器就綽綽有余,就像這樣:



應(yīng)用程序,、數(shù)據(jù)庫,、文件等所有資源都在一臺服務(wù)器上,通常使用 Linux PHP MySQL Apache 就可以完成整個項目部署,,然后再買個域名,,租一個廉價的服務(wù)器就可以開始我們的網(wǎng)站之旅了。


02應(yīng)用服務(wù)與數(shù)據(jù)服務(wù)分離


隨著業(yè)務(wù)的發(fā)展,,逐漸的一臺服務(wù)器已經(jīng)不能滿足需求,,這時我們可以將 應(yīng)用與數(shù)據(jù)分離


分離之后我們使用到三臺服務(wù)器:應(yīng)用服務(wù)器、文件服務(wù)器和數(shù)據(jù)庫服務(wù)器,,如下所示:



對于這三臺服務(wù)器要求各不相同:


應(yīng)用服務(wù)器 要處理大量的業(yè)務(wù)邏輯,,所以需要更好更快更強大的 CPU

應(yīng)用服務(wù)器 要處理大量的業(yè)務(wù)邏輯,所以需要更好更快更強大的 CPU

數(shù)據(jù)庫服務(wù)器 需要快速的進行磁盤檢索和數(shù)據(jù)緩存,,因此需要更快的硬盤和更大的內(nèi)存

文件服務(wù)器 需要存儲用戶上傳的文件資源,因此需要更大的硬盤存儲空間


應(yīng)用與數(shù)據(jù)分離后,,各個的職責變得更加專一,,網(wǎng)站的性能得到進一步的提升,但隨著用戶的繼續(xù)增加,,我們需要對網(wǎng)站架構(gòu)進一步優(yōu)化,。


03使用緩存改善性能


網(wǎng)站的訪問一樣遵循二八定律:80% 的業(yè)務(wù)訪問集中在 20% 的數(shù)據(jù)上面


因此我們要對這一小部分的數(shù)據(jù)進行緩存來減輕數(shù)據(jù)庫的訪問壓力,以提高整個網(wǎng)站的數(shù)據(jù)訪問速度,,改善數(shù)據(jù)庫的讀寫性能


網(wǎng)站的緩存可以分為兩種:緩存在應(yīng)用服務(wù)器上的本地緩存和緩存在專門的分布式緩存服務(wù)器上的遠程緩存

本地緩存 的訪問速度會快一些,,但是受應(yīng)用服務(wù)器內(nèi)存限制,緩存數(shù)據(jù)量很有限,,而且會出現(xiàn)內(nèi)存爭用的情況,;

遠程分布式緩存 可以使用集群的方式,部署大內(nèi)存的服務(wù)器作為專門的緩存服務(wù)器,,可以在理論上做到不受內(nèi)存容量限制的緩存服務(wù),。


如下所示:



使用緩存后,,數(shù)據(jù)訪問壓力得到了有效的緩解,但單一的應(yīng)用服務(wù)器能夠處理的請求連接數(shù)有限,,在訪問的高峰期,,應(yīng)用服務(wù)器又會成為網(wǎng)站性能的瓶頸。


04使用應(yīng)用服務(wù)器集群改善網(wǎng)站并發(fā)處理能力


使用集群是網(wǎng)站解決高并發(fā),,海量數(shù)據(jù)問題的常用手段,,當你縱向提升到一定程度后,那就該開始橫向提升了,。


當一臺服務(wù)器的處理能力不足時,,與其換一臺更強大的服務(wù)器,不如增加一臺服務(wù)器去分擔原有的服務(wù)器壓力,。對于大型網(wǎng)站而言,,無論多么強大的服務(wù)器,都滿足不了持續(xù)增長的業(yè)務(wù)需求,,更高效的方式就是增加服務(wù)器來分擔壓力


對于網(wǎng)站架構(gòu)而言,,如果增添一臺新的服務(wù)器可以改善負載壓力,那么就可以使用同樣的方式來應(yīng)對源源不斷的業(yè)務(wù)需求,,從而實現(xiàn)系統(tǒng)的可伸縮性,。



通過負載均衡調(diào)度服務(wù)器,可以將用戶請求分發(fā)到應(yīng)用服務(wù)器集群里的任何一臺服務(wù)器上,,如果有更多的用戶,,可以增加更多的應(yīng)用服務(wù)器,使應(yīng)用服務(wù)器的負載壓力不再成為網(wǎng)站的性能問題,。


05數(shù)據(jù)庫讀寫分離


在使用了緩存后,,大多數(shù)的操作不經(jīng)過數(shù)據(jù)庫訪問就能完成,但仍有一部分讀操作(緩存訪問未命中,,緩存過期)和所有的寫操作需要訪問數(shù)據(jù)庫,,在網(wǎng)站的用戶量達到一定時,數(shù)據(jù)庫的負載問題就來了


目前大多數(shù)的數(shù)據(jù)庫都支持主從熱備份,,通過配置兩臺服務(wù)器的主從關(guān)系,,可以將一臺數(shù)據(jù)庫服務(wù)器的數(shù)據(jù)更新同步到另一臺,網(wǎng)站利用這一功能,,實現(xiàn)數(shù)據(jù)庫讀寫分離,,從而進一步改善數(shù)據(jù)庫負載壓力



應(yīng)用服務(wù)器在寫操作的時候,訪問主數(shù)據(jù)庫,,主數(shù)據(jù)庫通過主從復(fù)制機制把數(shù)據(jù)同步更新到從數(shù)據(jù)庫,,這樣當應(yīng)用服務(wù)器進行讀操作的時候,就能訪問從數(shù)據(jù)庫獲取數(shù)據(jù)。


06使用反向代理和 CDN 加速網(wǎng)站響應(yīng)


CDN 和 反向代理 的基本原理都是緩存


CDN 部署在網(wǎng)絡(luò)供應(yīng)商的機房,,用戶在進行請求時,,會從距離最近的網(wǎng)絡(luò)供應(yīng)商機房獲取數(shù)據(jù);

反向代理 則部署在中心機房,,當用戶請求到達中心機房后,,會首先訪問反向代理服務(wù)器,如果反向代理服務(wù)器中緩存這用戶請求的資源,,就直接返回給用戶,。



使用 CDN 和 反向代理 都是為了盡快返回給用戶數(shù)據(jù),一方面加快用戶訪問速度,,另一方面也減輕了后端服務(wù)器的壓力,。


07使用分布式文件系統(tǒng)和分布式數(shù)據(jù)庫系統(tǒng)


隨著網(wǎng)站業(yè)務(wù)的繼續(xù)發(fā)展,這時候就可以像分布式應(yīng)用服務(wù)器一樣,,對數(shù)據(jù)庫系統(tǒng)和文件系統(tǒng)進行分布式管理


分布式數(shù)據(jù)庫 是網(wǎng)站數(shù)據(jù)庫拆分的最后手段,,一般我們可以采取業(yè)務(wù)分庫,根據(jù)不同業(yè)務(wù)的數(shù)據(jù)庫部署在不同的數(shù)據(jù)庫服務(wù)器上



08使用 NoSQL 和搜索引擎


這兩個方式都是依賴于互聯(lián)網(wǎng)的技術(shù)手段,,應(yīng)用服務(wù)器通過一個統(tǒng)一的數(shù)據(jù)訪問模塊來訪問各種數(shù)據(jù),,從而減輕應(yīng)用程序有多個數(shù)據(jù)源的麻煩。



09業(yè)務(wù)拆分


對于大型網(wǎng)站,,我們可以分而治之,,把整個網(wǎng)站的業(yè)務(wù)分為不同的模塊,比如大型的交易購物完整可以分為首頁,、店鋪,、訂單、買家等,,分別交給不同的業(yè)務(wù)團隊來負責,。


同時我們將一個網(wǎng)站根據(jù)模塊劃分拆分成多個應(yīng)用,每個應(yīng)用進行單獨的部署和維護,,應(yīng)用之間通過超鏈接建立關(guān)系(指向不同的應(yīng)用地址),,最后通過相同的數(shù)據(jù)存儲系統(tǒng)來構(gòu)成一個互相關(guān)聯(lián)的完整系統(tǒng)。



10分布式服務(wù)


隨著業(yè)務(wù)拆分,,整個系統(tǒng)越來越大,應(yīng)用的整體復(fù)雜度呈指數(shù)級增加,,部署維護越來越困難,,并且所有的應(yīng)用服務(wù)器都要與數(shù)據(jù)庫服務(wù)連接, 在數(shù)萬臺服務(wù)器規(guī)模的情況下,,這些連接的數(shù)目是服務(wù)器規(guī)模的平方,,導(dǎo)致資源不足


這時候就要對相同的業(yè)務(wù)進行提取,獨立部署,把這些可重用的業(yè)務(wù)和連接數(shù)據(jù)庫等,,提取出來作為公共業(yè)務(wù)服務(wù),,而應(yīng)用系統(tǒng)只需要通過分布式服務(wù)訪問公共業(yè)務(wù)服務(wù)完成業(yè)務(wù)操作



到這里,基本上大多數(shù)的技術(shù)問題都能得到解決,,還有一些實時同步等具體業(yè)務(wù)問題也都可以通過現(xiàn)有的技術(shù)解決,。


文章參考自:李智慧的《大型網(wǎng)站技術(shù)架構(gòu)》



●本文編號300,以后想閱讀這篇文章直接輸入300即可,。

●輸入m獲取文章目錄

推薦↓↓↓
 

前端開發(fā)

更多推薦15個技術(shù)類公眾微信

涵蓋:程序人生,、算法與數(shù)據(jù)結(jié)構(gòu)、黑客技術(shù)與網(wǎng)絡(luò)安全,、大數(shù)據(jù)技術(shù),、前端開發(fā)、Java,、Python,、Web開發(fā)、安卓開發(fā),、iOS開發(fā),、C/C++、.NET,、Linux,、數(shù)據(jù)庫、運維等,。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多