1. 程式人生 > >高併發負載均衡(一)——企業架構分析和DNS

高併發負載均衡(一)——企業架構分析和DNS

最近研究了幾個關於阿里研究院對於高併發的解決方案,總結一下,漲漲姿勢。

企業級web專案架構圖

 

1、客戶端通過企業防火牆傳送請求

2、在App伺服器如tomcat接收客戶端請求前,面對高併發大資料量訪問的企業架構,會通過加入負載均衡主備伺服器將請求進行轉發到不同web服務其中。

3、伺服器通過訪問資料庫進行互動,同樣高併發大資料會涉及到資料庫處理高併發的方案

4、另外會新增多臺伺服器用作快取、訊息處理等

高併發一般會發生在1、負載均衡處 2、資料庫高併發;阿里研究院也針對這兩個併發情況提供了相應的解決方案。

高併發初期解決方案:

應對高併發,解決方案大多從伺服器級別和應用程式級別

【硬體和軟體】兩個方向進行,如增大伺服器的CPU,增加記憶體,或者直接購買高效能服務器。但隨著業務的不斷增加,伺服器效能也達到瓶頸。第二個方向就是從應用程式級別也就是軟體設計編碼方向,如HTML靜態化、圖片服務器分離、分散式快取,減少客戶端訪問時併發請求的資料。

下面介紹3種利用負載均衡解決高併發訪問的方案

一、DNS

什麼是DNS?

簡單理解:Domain Name System,域名系統是因特網上作為域名和IP地址相互對映的一個分散式資料庫,能夠使使用者更方便的訪問網際網路。例如我們將程式釋出到192.168.55.145 和144兩臺伺服器上,通過DNS可以設定一個統一的訪問入口,如www.Max1209.com對這兩臺伺服器上的服務進行訪問。使用者直接訪問www.Max1209.com主機名而不需記住機器IP,

通過主機名,最終得到該主機名進行域名解析得到對應的IP地址進行訪問。

DNS如何實現負載均衡?

在DNS伺服器中,可以為多個不同的IP配置同一個名字,這個資料被髮送給其他名字伺服器,而最終查詢這個名字的客戶機將在解析這個名字時隨機使用其中一個地址。因此,對於同一個名字,不同的客戶機會得到不同的地址,因此不同的客戶訪問的也就是不同地址的Web伺服器。簡單說,也就是一個外觀,給部署了同一個網站的n多臺伺服器設定同一個名字,不同地區或者不同特點的使用者訪問同一個名字,實際接收客戶請求的是外觀裡的不同ip的伺服器,從而達到負載均衡的目的

同時面對更高訪問量需求,DNS可以以設定成樹狀,多個DNS伺服器將請求分發給下一個DNS伺服器,N層解析之後再訪問到應用伺服器,這樣就可以增加應用伺服器的個數,應對更大併發資料請求。

使用DNS負載均衡的時候,如果伺服器發生故障,DNS繼續把請求傳送給故障機器,一直到把故障伺服器從DNS中移走為止,這樣使用者就只能等到DNS連線超時後才能訪問到目標網站。

 下面將介紹其他兩種負載均衡的實現方案。