互聯網資訊
互聯網資訊

大(dà)型網站架構系列:負載均衡詳解(上)

時間:2016-02-25   點擊量:544   關鍵詞:服務器  均衡  負載  地址  同時  修改  分(fēn)發  集群  數據  物理(lǐ)  真實  


面對大(dà)量用戶訪問(wèn)、高并發請(qǐng)求,海量數據,可(kě)以使用高性能的服務器、大(dà)型數據庫,存儲設備,高性能Web服務器,采用高效率的編程語言比如(rú)(Go,Scala)等,當單機(jī)容量達到極限時,我們需要考慮業務拆分(fēn)和分(fēn)布式部署,來(lái)解決大(dà)型網站訪問(wèn)量大(dà),并發量高,海量數據的問(wèn)題。


從(cóng)單機(jī)網站到分(fēn)布式網站,很重要的區别是業務拆分(fēn)和分(fēn)布式部署,将應用拆分(fēn)後,部署到不同的機(jī)器上,實現大(dà)規模分(fēn)布式系統。分(fēn)布式和業務拆分(fēn)解決了,從(cóng)集中到分(fēn)布的問(wèn)題,但(dàn)是每個部署的獨立業務還(hái)存在單點的問(wèn)題和訪問(wèn)統一入口問(wèn)題,爲解決單點故障,我們可(kě)以采取冗餘的方式。将相(xiàng)同的應用部署到多台機(jī)器上。解決訪問(wèn)統一入口問(wèn)題,我們可(kě)以在集群前面增加負載均衡設備,實現流量分(fēn)發。


負載均衡(Load Balance),意思是将負載(工(gōng)作(zuò)任務,訪問(wèn)請(qǐng)求)進行平衡、分(fēn)攤到多個操作(zuò)單元(服務器,組件(jiàn))上進行執行。是解決高性能,單點故障(高可(kě)用),擴展性(水平伸縮)的終極解決方案。


本文是負載均衡詳解的第一篇文章(zhāng),介紹負載均衡的原理(lǐ),負載均衡分(fēn)類(DNS負載均衡,HTTP負載均衡,IP負載均衡,鏈路(lù)層負載均衡,混合型P負載均衡)。部分(fēn)内容摘自(zì)讀(dú)書(shū)筆記。


本次分(fēn)享大(dà)綱



  • 負載均衡原理(lǐ)

  • DNS負載均衡

  • HTTP負載均衡

  • IP負載均衡

  • 鏈路(lù)層負載均衡

  • 混合型P負載均衡


  • 一、負載均衡原理(lǐ)


    系統的擴展可(kě)分(fēn)爲縱向(垂直)擴展和橫向(水平)擴展。縱向擴展,是從(cóng)單機(jī)的角度通過增加硬件(jiàn)處理(lǐ)能力,比如(rú)CPU處理(lǐ)能力,内存容量,磁盤等方面,實現服務器處理(lǐ)能力的提升,不能滿足大(dà)型分(fēn)布式系統(網站),大(dà)流量,高并發,海量數據的問(wèn)題。因此需要采用橫向擴展的方式,通過添加機(jī)器來(lái)滿足大(dà)型網站服務的處理(lǐ)能力。


    比如(rú):一台機(jī)器不能滿足,則增加兩台或者多台機(jī)器,共同承擔訪問(wèn)壓力。這就(jiù)是典型的集群和負載均衡架構:如(rú)下圖:


    大(dà)型網站架構 網站架構優化 網站優化 網站架構




    • 應用集群:将同一應用部署到多台機(jī)器上,組成處理(lǐ)集群,接收負載均衡設備分(fēn)發的請(qǐng)求,進行處理(lǐ),并返回相(xiàng)應數據。

    • 負載均衡設備:将用戶訪問(wèn)的請(qǐng)求,根據負載均衡算法,分(fēn)發到集群中的一台處理(lǐ)服務器。(一種把網絡請(qǐng)求分(fēn)散到一個服務器集群中的可(kě)用服務器上去(qù)的設備)



    負載均衡的作(zuò)用(解決的問(wèn)題):



    1.解決并發壓力,提高應用處理(lǐ)性能(增加吞吐量,加強網絡處理(lǐ)能力);


    2.提供故障轉移,實現高可(kě)用;


    3.通過添加或減少服務器數量,提供網站伸縮性(擴展性);


    4.安全防護;(負載均衡設備上做一些過濾,黑(hēi)白(bái)名單等處理(lǐ))



    二、負載均衡分(fēn)類


    根據實現技術(shù)不同,可(kě)分(fēn)爲DNS負載均衡,HTTP負載均衡,IP負載均衡,鏈路(lù)層負載均衡等。


    2.1DNS負載均衡


    最早的負載均衡技術(shù),利用域名解析實現負載均衡,在DNS服務器,配置多個A記錄,這些A記錄對應的服務器構成集群。大(dà)型網站總是部分(fēn)使用DNS解析,作(zuò)爲第一級負載均衡。如(rú)下圖:


    大(dà)型網站架構 網站架構優化 網站優化 網站架構


    優點



  • 使用簡單:負載均衡工(gōng)作(zuò),交給DNS服務器處理(lǐ),省掉了負載均衡服務器維護的麻煩

  • 提高性能:可(kě)以支持基于地址的域名解析,解析成距離(lí)用戶最近的服務器地址,可(kě)以加快(kuài)訪問(wèn)速度,改善性能;


  • 缺點



  • 可(kě)用性差:DNS解析是多級解析,新增/修改DNS後,解析時間較長;解析過程中,用戶訪問(wèn)網站将失敗;

  • 擴展性低:DNS負載均衡的控制權在域名商那裡(lǐ),無法對其做更多的改善和擴展;

  • 維護性差:也不能反映服務器的當前運行狀态;支持的算法少;不能區分(fēn)服務器的差異(不能根據系統與服務的狀态來(lái)判斷負載)


  • 實踐建議(yì)


    将DNS作(zuò)爲第一級負載均衡,A記錄對應着内部負載均衡的IP地址,通過内部負載均衡将請(qǐng)求分(fēn)發到真實的Web服務器上。一般用于互聯網公司,複雜的業務系統不合适使用。如(rú)下圖:


    大(dà)型網站架構 網站架構優化 網站優化 網站架構


    1.3  IP負載均衡


    在網絡層通過修改請(qǐng)求目标地址進行負載均衡。


    用戶請(qǐng)求數據包,到達負載均衡服務器後,負載均衡服務器在操作(zuò)系統内核進程獲取網絡數據包,根據負載均衡算法得(de)到一台真實服務器地址,然後将請(qǐng)求目的地址修改爲,獲得(de)的真實ip地址,不需要經過用戶進程處理(lǐ)。


    真實服務器處理(lǐ)完成後,響應數據包回到負載均衡服務器,負載均衡服務器,再将數據包源地址修改爲自(zì)身(shēn)的ip地址,發送給用戶浏覽器。如(rú)下圖:


    大(dà)型網站架構 網站架構優化 網站優化 網站架構


    IP負載均衡,真實物理(lǐ)服務器返回給負載均衡服務器,存在兩種方式:



    (1)負載均衡服務器在修改目的ip地址的同時修改源地址。将數據包源地址設爲自(zì)身(shēn)盤,即源地址轉換(snat)。


    (2)将負載均衡服務器同時作(zuò)爲真實物理(lǐ)服務器集群的網關服務器。



    優點:



    (1)在内核進程完成數據分(fēn)發,比在應用層分(fēn)發性能更好;



    缺點:



    (2)所有請(qǐng)求響應都(dōu)需要經過負載均衡服務器,集群最大(dà)吞吐量受限于負載均衡服務器網卡帶寬;




    文章(zhāng)内容及圖片來(lái)自(zì)網絡,如(rú)果侵權,請(qǐng)聯系:901070669@qq.com,我們将及時處理(lǐ);
    推薦解決方案
    熱(rè)門(mén)解決方案