這篇文章主要介紹“MySQL大型網(wǎng)站技術(shù)架構(gòu)核心原理是什么”,在日常操作中,相信很多人在mysql大型網(wǎng)站技術(shù)架構(gòu)核心原理是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”mysql大型網(wǎng)站技術(shù)架構(gòu)核心原理是什么”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
成都創(chuàng)新互聯(lián)公司2013年成立,先為錯那等服務(wù)建站,錯那等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為錯那企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
一、大型網(wǎng)站架構(gòu)演化
A.大型網(wǎng)站軟件系統(tǒng)的特點
高并發(fā),大流量;高可用;海量數(shù)據(jù);用戶分布廣泛,網(wǎng)絡(luò)情況復(fù)雜;安全環(huán)境惡劣;需求快速變更,發(fā)布頻繁;漸進式發(fā)展;
B.大型網(wǎng)站架構(gòu)演化發(fā)展歷程
1.初始階段:一臺服務(wù)器,LNMP
2.應(yīng)用服務(wù)和數(shù)據(jù)服務(wù)分離:應(yīng)用服務(wù)器(CPU);數(shù)據(jù)庫服務(wù)器(快速磁盤檢索和數(shù)據(jù)緩存);文件服務(wù)器(大硬盤);
3.使用緩存改善網(wǎng)站性能:緩存在應(yīng)用服務(wù)器上的本地緩存(訪問速度快,受應(yīng)用服務(wù)器內(nèi)存限制,數(shù)據(jù)量有限)、遠程分布式緩存(使用集群部署大內(nèi)存的服務(wù)器作為專門的緩存服務(wù)器)
4.應(yīng)用服務(wù)器集群:通過負載均衡調(diào)度
5.數(shù)據(jù)庫讀寫分離
6.使用反向代理和CDN加速:cdn(部署在最近的網(wǎng)絡(luò)機房)、反向代理 (部署在中心機房)
7.使用分布式文件系統(tǒng)和分布式數(shù)據(jù)庫系統(tǒng)
8.使用NOSQL和搜索引擎
9.業(yè)務(wù)拆分
10.分布式服務(wù)
C.大型網(wǎng)站架構(gòu)演化的價值觀
1.大型網(wǎng)站架構(gòu)技術(shù)的核心價值是隨網(wǎng)站所需靈活應(yīng)對
2.驅(qū)動大型網(wǎng)站技術(shù)發(fā)展的主要力量是網(wǎng)站的業(yè)務(wù)發(fā)展
D.網(wǎng)站架構(gòu)設(shè)計誤區(qū)
1.一味追隨大公司的解決方案
2.為了技術(shù)而技術(shù)
3.企圖用技術(shù)解決所有問題:技術(shù)是用來解決業(yè)務(wù)問題的,而業(yè)務(wù)的問題,也可以通過業(yè)務(wù)的手段去解決
二、大型網(wǎng)站架構(gòu)模式
模式:每一個模式描述了一個在我們周圍不斷重復(fù)發(fā)生的問題及該問題解決方案的核心。這樣,你就能一次又一次地使用該方案而不必做重復(fù)工作。模式的關(guān)鍵在于模式的可重復(fù)性。
A.網(wǎng)站架構(gòu)模式
1.分層
分層:是企業(yè)應(yīng)用系統(tǒng)中最常見的一種架構(gòu)模式,將系統(tǒng)在橫向維度上切分成幾個部分,每個部分負責(zé)一部分相對比較單一的職責(zé),然后通過上層對下層的依賴和調(diào)用組成一個完整的系統(tǒng)。
將網(wǎng)站軟件系統(tǒng)分為應(yīng)用層(視圖層、業(yè)務(wù)邏輯層)、服務(wù)層(數(shù)據(jù)接口層、邏輯處理層)、數(shù)據(jù)層
可以更好地將一個龐大的軟件系統(tǒng)切分成不同的部分,便于分工合作開發(fā)和維護;各層之間具有一定的獨立性,只要維持調(diào)用接口不變,各層可以根據(jù)具體問題獨立深化發(fā)展而不需要其他層必須 做出相應(yīng)調(diào)整。
2.分割
縱向方面進行切分。將不同的功能和服務(wù)分割開來,包裝成高內(nèi)聚低耦合的模塊單元。大型網(wǎng)站分割的粒度可能會很小。
3.分布式
即將不同的模塊部署在不同的服務(wù)器上,通過遠程調(diào)用協(xié)同工作。意味著可以使用更多的計算機完成同樣的功能。
問題:通過網(wǎng)絡(luò)可能會對性能造成嚴重影響;服務(wù)器多宕機的概率大;數(shù)據(jù)在分布式的環(huán)境中保持數(shù)據(jù)一致性也非常困難;導(dǎo)致網(wǎng)站依賴錯綜復(fù)雜開發(fā)被處理維護困難;
常見的分布式方案:分布式應(yīng)用和服務(wù);分布式靜態(tài)資源;分布式數(shù)據(jù)和存儲;分布式計算(Hadoop及其MapReduce);分布式配置;分布式鎖;分布式文件等;
4.集群
多臺服務(wù)器部署相同應(yīng)用構(gòu)成一個集群,通過負載均衡設(shè)備共同對外提供服務(wù)。
5.緩存
緩存就是將數(shù)據(jù)有些話在距離計算最近的位置以加快處理速度。
CDN、反向代理、本地緩存、分布式緩存。
使用緩存的兩個前提條件:一是數(shù)據(jù)訪問熱點不均衡;二是數(shù)據(jù)在某個時間段內(nèi)有效;
6.異步
業(yè)務(wù)之間的消息傳遞不是同步調(diào)用,而是將一個業(yè)務(wù)操作分成多個階段,每個階段之間通過共享數(shù)據(jù)的方式異步執(zhí)行進行協(xié)作。
單一服務(wù)器內(nèi)部可通過多線程共享內(nèi)存隊列的方式實現(xiàn)異步;分布式系統(tǒng)中,多個服務(wù)器集群通過分布式消息隊列實現(xiàn)異步。
典型的生產(chǎn)者消費者模式,兩者不存在直接調(diào)用,特性:提高系統(tǒng)可用性;加快網(wǎng)站響應(yīng)速度;消除并發(fā)訪問高峰。
使用異步方式處理業(yè)務(wù)可能會對用戶體驗、業(yè)務(wù)流程造成影響,需要產(chǎn)品設(shè)計方面的支持。
7.冗余
要想保證在服務(wù)器宕機的情況下網(wǎng)站依然可以繼續(xù)服務(wù),不丟失數(shù)據(jù),就需要一定程度的服務(wù)器冗余運行,數(shù)據(jù)冗余備份。
小型網(wǎng)站也需要至少兩臺服務(wù)器構(gòu)建集群,數(shù)據(jù)庫除定期備份保存實現(xiàn)冷備份外,也需要進行主從分享實時同步熱備。
大型公司可能會對整個數(shù)據(jù)中心備份并同步到各地災(zāi)備中心。
8.自動化
主要集中在發(fā)布運維方面。
發(fā)布過程自動化:自動化代碼管理、自動化測試、自動化安全檢測、自動化部署。
自動化監(jiān)控:自動化報警、自動化失效轉(zhuǎn)移、自動化失效恢復(fù)、自動化降級、自動化分配資源。
9.安全
B.架構(gòu)模式在新浪微博的應(yīng)用
三、大型網(wǎng)站核心架構(gòu)要素
架構(gòu):最高層次的規(guī)劃,難以改變的決定。
軟件架構(gòu):有關(guān)軟件整體結(jié)構(gòu)與組件的抽象描述,用于指導(dǎo)大型軟件系統(tǒng)各個方面的設(shè)計。
A.性能
瀏覽器端:瀏覽器緩存、頁面壓縮、合理布局、減少Cookie傳輸、CDN等
應(yīng)用服務(wù)器端:服務(wù)器本地緩存、分布式緩存、異步操作與消息隊列配合、集群等
代碼:多線程、改善內(nèi)存管理等
數(shù)據(jù)庫:索引、緩存、SQL優(yōu)化、NoSQL技術(shù)
B.可用性
服務(wù)器、數(shù)據(jù)庫及文件存儲等運行環(huán)境的主要手段是冗余。
軟件開發(fā)時通過預(yù)發(fā)布驗證、自動化測試、自動化發(fā)布、灰度發(fā)布等手段
C.伸縮性
伸縮性是指通過不斷向集群中加入服務(wù)器的手段來緩解不斷上升的用戶并發(fā)訪問壓力和不斷增長的數(shù)據(jù)存儲需求。加入新的服務(wù)器是否可以提供和原來的服務(wù)器無差別的服務(wù)。
應(yīng)用服務(wù)器:通過合適的負載均衡設(shè)備可以向集群中不斷加入服務(wù)器。
緩存服務(wù)器:加入新的可能會導(dǎo)致緩存路由失效。需要路由算法。
關(guān)系數(shù)據(jù)庫:通過路由分區(qū)等手段。
D.擴展性
衡量標(biāo)準(zhǔn):網(wǎng)站增加業(yè)務(wù)產(chǎn)品時,是否可以實現(xiàn)對現(xiàn)有產(chǎn)品透明無影響;不同產(chǎn)品這間是否很少耦合;
手段:事件驅(qū)動架構(gòu)(消息隊列)、分布式服務(wù)(將業(yè)務(wù)和可利用服務(wù)分享,通過分布式服務(wù)框架調(diào)用)
E.安全性
四、瞬時響應(yīng):網(wǎng)站的高性能架構(gòu)
A.網(wǎng)站性能測試
1.不同視角
用戶視角的網(wǎng)站性能:優(yōu)化頁面HTML樣式、利用瀏覽器端的并發(fā)和異步特性、調(diào)整瀏覽器緩存策略、使用CDN服務(wù)、反射代理等。
開發(fā)人員視角的網(wǎng)站性能:使用緩存加速數(shù)據(jù)讀取、使用集群提高吞吐能力、使用異步消息加快請求響應(yīng)及實現(xiàn)削峰、使用代碼優(yōu)化手段改善程序性能。
運維人員視角的網(wǎng)站性能:建設(shè)優(yōu)化骨干網(wǎng)、使用高性價比定制服務(wù)器、利用虛擬化技術(shù)優(yōu)化資源利用等。
2.性能測試指標(biāo)
響應(yīng)時間:測試辦法是重復(fù)請求,測試一萬次總時間之和除以一萬。
并發(fā)數(shù):系統(tǒng)能夠同時處理請求的數(shù)目(網(wǎng)站系統(tǒng)用戶數(shù)>>網(wǎng)站在線用戶數(shù)>>網(wǎng)站并發(fā)用戶數(shù)),測試程序通過多線程模擬并發(fā)用戶的辦法來測試系統(tǒng)的并發(fā)處理能力。
吞吐量:單位時間內(nèi)系統(tǒng)處理的請求數(shù)量(TPS、HPS、QPS等)
性能計數(shù)器:描述服務(wù)器或操作系統(tǒng)性能的一些數(shù)據(jù)操縱桿。包括System Load、對象與線程數(shù)、內(nèi)存使用、CPU使用、磁盤與網(wǎng)絡(luò)I/O等。
3.性能測試方法:性能測試、負載測試、壓力測試、穩(wěn)定性測試
4.性能測試是一個不斷對系統(tǒng)增加訪問壓力,以獲得系統(tǒng)性能指標(biāo)、最大負載能力、最大壓力承受能力的過程。所謂增加訪問壓力,就是不斷增加測試程序的并發(fā)請求數(shù)。
5.性能優(yōu)化策略
性能分析:檢查請求處理的各個環(huán)節(jié)的日志,分析哪個環(huán)節(jié)響應(yīng)時間不合理、超過預(yù)期;然后檢查監(jiān)控數(shù)據(jù) 。
B.Web前端性能優(yōu)化
1.瀏覽器訪問優(yōu)化:減少http請求(合并CSS/JS/圖片)、使用瀏覽器緩存(HTTP頭中Cache-Control和Expires)、啟用壓縮 (Gzip)、CSS放在頁面最上面JS放在頁面最下面、減少Cookie傳輸
2.CND加速
3.反向代理:通過配置緩存功能加速Web請求。(還可以保護真實服務(wù)器及實現(xiàn)負載均衡的功能)
C.應(yīng)用服務(wù)器性能優(yōu)化
1.分布式緩存
網(wǎng)站性能優(yōu)化第一定律:優(yōu)先考慮使用緩存優(yōu)化性能
主要用來存放那些讀寫比很高、很少變化的數(shù)據(jù)。緩存無法命中時讀取數(shù)據(jù)庫并將數(shù)據(jù)再寫入緩存。
2.合理使用緩存:不要頻繁修改的數(shù)據(jù)、沒有熱點的訪問、數(shù)據(jù)不一致與臟讀、緩存可用性(緩存熱備)、緩存預(yù)熱(在程序啟動時預(yù)先加載一些緩存)、緩存穿透
3.分布式緩存架構(gòu):需要更新同步的分布式緩存(JBoss Cache)、不互相通信的分布式緩存(Memcached)
4.異步操作:使用消息隊列(可改善網(wǎng)站的擴展性和性能),具有很好的削峰作用,將短時間高并發(fā)產(chǎn)生的事務(wù)消息存儲在消息隊列中。
5.使用集群
6.代碼優(yōu)化:
多線程(IO阻塞與多CPU,啟動線程數(shù)=[任務(wù)執(zhí)行時間/(任務(wù)執(zhí)行時間-IO等待時間)]*CPU內(nèi)核數(shù),需要注意線程安全:將對象設(shè)計為無狀態(tài)對象、使用局部對象、并發(fā)訪問資源時使用鎖);
資源復(fù)用(單例和對象池);
數(shù)據(jù)結(jié)構(gòu);
垃圾回收
D.存儲性能優(yōu)化
1.數(shù)據(jù)庫多采用兩級索引的B+樹,樹的層次最多三層。可能需要5次磁盤訪問才能更新一條記錄。
2.這么多NoSQL產(chǎn)品使用LSM樹,可以看作一個N階合并樹。
3.RAID(廉價磁盤冗余陣列),RAID0,RAID1,RAID10,RAID5,RAID6,傳統(tǒng)關(guān)系數(shù)據(jù)庫及文件系統(tǒng)中應(yīng)用廣泛。
4.HDFS(Hadoop分布式文件系統(tǒng)),配合MapReduce進行大數(shù)據(jù)處理。
五、萬無一失:網(wǎng)站的高可用架構(gòu)
A.網(wǎng)站可用性的度量與考核
1.網(wǎng)站可用性度量
網(wǎng)站不可用時間(故障時間)=故障修復(fù)時間點-故障發(fā)現(xiàn)(報告)時間點
網(wǎng)站年度可用性指標(biāo)=(1-網(wǎng)站不可用時間/年度總時間)*100%
2個9是基本可用,88小時;3個9是較高可用,9小時;4個9是具有自動恢復(fù)能力的高可用,53分鐘;5個9具有極高可用性,小于5分鐘;QQ為99.99,4個9,一年大約53分鐘不可用。
2.網(wǎng)站可用性考核
故障分:指對網(wǎng)站故障進行分類加權(quán)計算故障責(zé)任的方法
故障分=故障時間(分鐘)*故障權(quán)重
B.高可用的網(wǎng)站架構(gòu)
主要手段就是數(shù)據(jù)和服務(wù)的冗余備份及失效轉(zhuǎn)移。對于應(yīng)用層和服務(wù)層,以集群通過負載均衡實現(xiàn)高可用,數(shù)據(jù)層通過數(shù)據(jù)同步復(fù)制實現(xiàn)冗余備份來實現(xiàn)高可用。
C.高可用應(yīng)用
1.通過負載均衡進行無狀態(tài)服務(wù)的失效轉(zhuǎn)移:即使應(yīng)用訪問量非常少,也至少部署兩臺服務(wù)器使用負載均衡構(gòu)建一個小型集群。
2.應(yīng)用服務(wù)器集群的Session管理
Session復(fù)制:服務(wù)器間同步Session,小型集群
Session綁定:利用源地址Hash將源于同一IP的請求分發(fā)到同一臺服務(wù)器上,對高可用性有影響。
利用Cookie記錄Session:大小限制、每次請求響應(yīng)都需要傳輸、關(guān)閉cookie則無法訪問
Session服務(wù)器:利用分布式緩存、數(shù)據(jù)庫等,高可用、高伸縮、性能較好
D.高可用服務(wù)
1.分級管理:運維上將服務(wù)器進行分級,核心應(yīng)用和服務(wù)優(yōu)先使用更好的硬件,在運維響應(yīng)速度上也格外迅速。
2.超時設(shè)置:在應(yīng)用程序中設(shè)置服務(wù)調(diào)用的超時時間,一旦超時,通信框架就拋出異常,應(yīng)用程序根據(jù)服務(wù)調(diào)度策略,可選擇繼續(xù)重試或?qū)⒄埱筠D(zhuǎn)移到提供相同服務(wù)的其他服務(wù)器上。
3.異步調(diào)用:應(yīng)用對服務(wù)的調(diào)用通過消息隊列等異步方式完成,避免一個服務(wù)失敗導(dǎo)致整個應(yīng)用請求失敗的情況。
4.服務(wù)降級:拒絕服務(wù),拒絕低優(yōu)先級應(yīng)用的調(diào)用或者隨機拒絕部分請求調(diào)用;關(guān)閉功能,關(guān)閉部分不重要的服務(wù)或服務(wù)內(nèi)部關(guān)閉部分不重要的功能。
5.冪等性設(shè)計:在服務(wù)層保證服務(wù)重復(fù)調(diào)用和調(diào)用一次產(chǎn)生的結(jié)果相同,即服務(wù)具有冪等性。
E.高可用的數(shù)據(jù)
1.CAP原理
高可用的數(shù)據(jù):數(shù)據(jù)持久性(永久性存儲、備份副本不會丟失)、數(shù)據(jù)可訪問性(不同設(shè)備下快速切換)、數(shù)據(jù)一致性(多副本的情況下保證副本數(shù)據(jù)一致)
CAP原理:一個提供數(shù)據(jù)服務(wù)的存儲系統(tǒng)無法同時滿足數(shù)據(jù)一致性(Consistency)、數(shù)據(jù)可用性(Availibility)、分區(qū)耐受性(Partition Tolerance,系統(tǒng)具有 跨網(wǎng)絡(luò)分區(qū)的伸縮性)這三個條件。
大型網(wǎng)站通常會選擇強化分布式系統(tǒng)的可用性(A)和伸縮性(P),而在某種程度上放棄一致性(C)。一般來說,數(shù)據(jù)不一致通常出現(xiàn)在系統(tǒng)高并發(fā)寫操作或者集群狀態(tài)不穩(wěn)的情況下,應(yīng)用系統(tǒng)需要對分布式數(shù)據(jù)處理系統(tǒng)的數(shù)據(jù)不一致性有所了解并進行一定意義上的補償和糾錯,以避免出現(xiàn)應(yīng)用系統(tǒng)數(shù)據(jù)不正確。
數(shù)據(jù)一致性又可分為:數(shù)據(jù)強一致(各種操作都是一致的)、數(shù)據(jù)用戶一致(副本可能不一致但用戶訪問時通過糾錯的校驗確定一個正確的數(shù)據(jù)返回給用戶)、數(shù)據(jù)最終一致(副本和用戶訪問可能都不一致,但系統(tǒng)經(jīng)過一段時間的自我恢復(fù)和修正達到一致)
2.數(shù)據(jù)備份
異步熱備:多份數(shù)據(jù)副本的寫入操作異步完成,應(yīng)用程序收到數(shù)據(jù)服務(wù)系統(tǒng)的寫操作成功響應(yīng)時,只寫成功一份,存儲系統(tǒng)將會異步地寫其他副本(可能會失?。?/p>
同步熱備:多份數(shù)據(jù)副本的寫入操作同步完成,即應(yīng)用程序收到數(shù)據(jù)服務(wù)系統(tǒng)的寫成功響應(yīng)時,多份數(shù)據(jù)都已經(jīng)寫操作成功。
3.失效轉(zhuǎn)移
失效確認:心跳檢測、應(yīng)用程序訪問失敗
訪問轉(zhuǎn)移:確認某臺服務(wù)器宕機后,將數(shù)據(jù)讀寫訪問重新路由到其他服務(wù)器上
數(shù)據(jù)恢復(fù):從健康的服務(wù)器復(fù)制數(shù)據(jù),將數(shù)據(jù)副本數(shù)目恢復(fù)到設(shè)定值
F.高可用網(wǎng)站的軟件質(zhì)量保證
1.網(wǎng)站發(fā)布
2.自動化測試:工具Selenium
3.預(yù)發(fā)布驗證:先發(fā)布到預(yù)發(fā)布機器上,開發(fā)工程師和測試工程師在預(yù)發(fā)布服務(wù)器上進行預(yù)發(fā)布驗證。需要和生產(chǎn)環(huán)境相同配置、環(huán)境、數(shù)據(jù)中心等
4.代碼控制:svn、git;主干開發(fā)、分支發(fā)布;分支開發(fā)、主干發(fā)布(主流);
5.自動化發(fā)布
6.灰度發(fā)布:將集群服務(wù)器分成若干部分,每天只發(fā)布一部分服務(wù)器,觀察運行穩(wěn)定沒有故障,期間如果發(fā)現(xiàn)問題,只需要回滾已發(fā)布的一部分服務(wù)器即可。也常用于用戶測試(AB測試)。
G.網(wǎng)站運行監(jiān)控
1.監(jiān)控數(shù)據(jù)的采集
用戶行為日志收集:用戶操作系統(tǒng)與瀏覽器版本、IP地址、頁面訪問路徑、頁面停留時間等。包括服務(wù)器端日志收集、客戶端瀏覽器日志收集。
服務(wù)器性能收集:如系統(tǒng)Load、內(nèi)存占用、磁盤IO、網(wǎng)絡(luò)IO等,工具Ganglia等
運行數(shù)據(jù)報告:如緩沖命中率、平均響應(yīng)延遲時間、每分鐘發(fā)送郵件數(shù)目、待處理的任務(wù)總數(shù)等。
2.監(jiān)控管理
系統(tǒng)報警:設(shè)定各項監(jiān)控指標(biāo)設(shè)定閾值,使用郵件、即時通信工具、短信等報警
失效轉(zhuǎn)移:主動通知應(yīng)用,進行失效轉(zhuǎn)移
自動優(yōu)雅降級:根據(jù)監(jiān)控參數(shù)判斷應(yīng)用負載,適當(dāng)卸載應(yīng)用低負載應(yīng)用部分服務(wù)器,重新安裝高負載應(yīng)用使應(yīng)用負載總體均衡。
六、永無止境:網(wǎng)站的伸縮性架構(gòu)
所謂網(wǎng)站的伸縮性是指不需要改變網(wǎng)站的軟硬件設(shè)計,僅僅通過改變部署的服務(wù)器數(shù)量就可以擴大或者縮小網(wǎng)站的服務(wù)處理能力。
A.網(wǎng)站架構(gòu)的伸縮性設(shè)計
1.不同功能進行物理分離實現(xiàn)伸縮:縱向分離(分層后分離),將業(yè)務(wù)處理流程上的不同部分分離部署,實現(xiàn)系統(tǒng)伸縮性;橫向分離(業(yè)務(wù)分割后分離),將不同的業(yè)務(wù)模塊分離部署,實現(xiàn)系統(tǒng)伸縮性。
2.單一功能通過集群規(guī)模實現(xiàn)伸縮
B.應(yīng)用服務(wù)器集群的伸縮性設(shè)計
1.應(yīng)用服務(wù)器應(yīng)該設(shè)計成無狀態(tài)的,不存儲請求上下文信息。
2.負載均衡:
HTTP重定向負載均衡:根據(jù)用戶的HTTP請求計算一臺真實的Web服務(wù)器地址,并將該服務(wù)器地址寫入HTTP重定向響應(yīng)中返回給用戶瀏覽器。優(yōu)點簡單,缺點:需要兩次請求;重定向服務(wù)器自身的處理能力可能成為瓶頸;302跳轉(zhuǎn)可能影響SEO。
DNS域名解析負載均衡:在DNS服務(wù)器配置多個A記錄指向不同IP,優(yōu)點是將負載均衡的工作轉(zhuǎn)交給DNS,不少還支持地理位置返回最近的服務(wù)器。缺點是可能緩存A記錄,控制權(quán)在域名服務(wù)商那里。
反射代理負載均衡:瀏覽器訪問請求的地址是反向代理服務(wù)器,反向代理服務(wù)器收到請求后,根據(jù)負載均衡算法計算得到一臺真實物理服務(wù)器的地址,并將請求轉(zhuǎn)發(fā)給真實服務(wù)器,處理完成后將響應(yīng)返回給反向代理服務(wù)器,反向代理服務(wù)器再將響應(yīng)返回給用戶。也叫應(yīng)用層(HTTP層)負載均衡。優(yōu)點是部署簡單,缺點是反向代理服務(wù)器作為中轉(zhuǎn)站性能可能成為瓶頸。
IP負載均衡:用戶請求數(shù)據(jù)包到達負載均衡服務(wù)器后,負載均衡服務(wù)器在操作系統(tǒng)內(nèi)核進程獲取網(wǎng)絡(luò)數(shù)據(jù)包,根據(jù)負載均衡算法計算得到一臺真實web服務(wù)器,然后將數(shù)據(jù)目的IP地址修改為真實服務(wù)器,不需要通過用戶進程處理。真實服務(wù)器處理完成后,響應(yīng)數(shù)據(jù)包回到負載均衡服務(wù)器,負載均衡服務(wù)器再將數(shù)據(jù)包源地址修改為自身的IP地址發(fā)送給用戶瀏覽器。
數(shù)據(jù)鏈路層負載均衡:三角傳輸模式,負載均衡服務(wù)器數(shù)據(jù)分發(fā)過程中不修改IP地址,只修改目的mac地址,通過所有服務(wù)器的虛擬IP地址與負載均衡服務(wù)器的IP地址一致,不修改數(shù)據(jù)包的源地址和目的地址,由于IP一致,可將響應(yīng)數(shù)據(jù)包直接返回給用戶瀏覽器。又稱為直接路由方式(DR)。代表產(chǎn)品LVS(Linux Virtual Server)。
3.負載均衡算法:
輪詢(Round Robin,RR):所有請求集資分發(fā)到每臺應(yīng)用服務(wù)器上
加權(quán)輪詢(Weighted Round Robin,WRR):根據(jù)服務(wù)器硬件性能情況,在輪詢的基礎(chǔ)上按照配置的權(quán)重進行分發(fā)
隨機(Random):請求被隨機分配到各個應(yīng)用服務(wù)器
最少連接(Least Connections):記錄服務(wù)器正在處理的連接數(shù),將新的請求分發(fā)到最少連接的服務(wù)器上
源地址散列(Source Hashing):根據(jù)請求來源的IP地址進行Hash計算
C.分布式緩存集群的伸縮性設(shè)計
1.Memcached分布式緩存集群的訪問模型
通過KEY輸入路由算法模塊,路由算法計算得到一臺Memcached服務(wù)器,進行讀取和寫入。
2.Memcached分布式緩存集群的伸縮性挑戰(zhàn)
簡單的路由算法使用余數(shù)Hash:用服務(wù)器數(shù)目除緩存數(shù)據(jù)KEY的Hash值,余數(shù)為服務(wù)器列表下標(biāo)編號。伸縮性不好。
3.分布式緩存的一致性Hash算法
先構(gòu)造一個長度為2的32次方的整數(shù)環(huán)(一致性Hash環(huán)),根據(jù)節(jié)點名稱的Hash值將緩存服務(wù)器節(jié)點放置在這個Hash環(huán)上。然后根據(jù)需要緩存的數(shù)據(jù)的KEY值計算Hash值,然后在Hash環(huán)上順時針查找距離這個KEY的Hash值最近的緩存服務(wù)器節(jié)點,完成KEY到服務(wù)器的Hash映射查找 。
D.數(shù)據(jù)存儲服務(wù)器集群的伸縮性設(shè)計
1.關(guān)系數(shù)據(jù)庫集群的伸縮性設(shè)計
數(shù)據(jù)復(fù)制(主從)、分表分庫、數(shù)據(jù)分片( Cobar)
2.NoSql數(shù)據(jù)庫的伸縮性設(shè)計
NoSQL放棄了以關(guān)系代數(shù)為基礎(chǔ)的結(jié)構(gòu)化查詢語言(SQL)和事務(wù)一致性保證(ACID)。強化了高可用性和伸縮性。(Apache HBase)
到此,關(guān)于“mysql大型網(wǎng)站技術(shù)架構(gòu)核心原理是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
分享題目:mysql大型網(wǎng)站技術(shù)架構(gòu)核心原理是什么
當(dāng)前鏈接:http://jinyejixie.com/article10/pppjdo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、ChatGPT、網(wǎng)站收錄、營銷型網(wǎng)站建設(shè)、企業(yè)建站、動態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)