天天看點

全局負載均衡技術如何将使用者的通路指向離使用者最近的工作正常的流媒體伺服器上

全局負載均衡技術如何将使用者的通路指向離使用者最近的工作正常的流媒體伺服器上;

出處:https://segmentfault.com/q/1010000004556003?utm_source=weekly&utm_medium=email&utm_campaign=email_weekly

原題為:負載均衡 是如何如何分發 請求到使用者最近的伺服器的?

首先我們要明确幾件事:

1、在CDN的案例圖中,其實B和C不會在不同的城域。如果在不同的城市,一般會在那個地域也放置一個反向代理伺服器或反向代理節點。B和C為同一地域,A為B、C的負載均稀器或排程器;

2、CDN的部署裡,為避免單點故障或應對業務峰值,A并不是單台伺服器,一般由多台伺服器進行排程,一般采用LVS進行七層的負載和轉發。通過LVS的負載均衡政策将業務轉發至B和C,負載均衡政策可以進行設定,如輪詢,權重輪詢、随機等等;

3、CDN一般由DNS來做為使用者流量排程,也是CDN的核心,即将使用者的請求排程至距使用者最近的節點,例如節點D,節點D通過負載均衡政策将請求分發至節點D後端的業務伺服器E和F。

4、你看到的這句話,是指DNS層面的排程。

流媒體業務使用CDN的釋出業務的前提和流程如下:

1、在流媒體業務伺服器域名注冊商修改域名的CNAME記錄為CDN服務廠商的域名;(這一步是使用CDN的首要條件)

2、CDN服務廠商為業務設定不同地域的緩存節點,如北京、上海、美國等

3、不同地域設定的緩存節點具有不同的IP位址位址池,并且該節點内擁有業務排程器(LVS的DR)及真正的業務緩存伺服器,緩存伺服器通過類似Squid等程式定期緩存流媒體業務伺服器的視訊資訊及網頁資訊,每隔一段時間進行更新請求;

4、使用者通過DNS排程請求到某一節點時,該節點通過LVS技術将使用者的請求排程至節點内某一以緩存節點進行處理,并傳回結果給使用者;(可參照LVS的工作模式)

5、當緩存節點有使用者請求的内容時,将直接傳回内容給使用者,當緩存節點發現請求的内容不存在時,會主動傳回流媒體業務的源伺服器進行内容請求,并将結果緩存至緩存節點。

6、使用者最終拿到緩存節點上的視訊内容及資訊,由于通過DNS排程至使用者最近的節點,通過LVS排程至最快最優的伺服器進行處理,故加快了使用者通路網站及視訊的速度。(視訊的加速其實還有一種技術叫cache技術,即将視訊提前下載下傳到距使用者最近的節點,使用者看起來等于在區域網路中檢視)

DNS和CDN排程的流程如下:

1、使用者通路流媒體業務的域名如“www.abc.com";

2、www.abc.com的cname記錄為CDN服務廠商的域名,如www.abc.com.cdncache01.com;

3、使用者的請求被轉發至www.abc.com.cdncache01.com進行處理,即觸發使用者對www.abc.com.cdncache01.com域名的解析處理。DNS解析流程見圖“DNS解析流程圖”

4、www.abc.com.cdncache01.com域名在權威伺服器裡配置的記錄為多條的,即智能DNS,可參考DNSPOD,即一個域名可以根據地域的不同配置不同的解析政策,源位址為北京聯通的,即解析為使用者指定的聯通伺服器IP位址,源位址為廣州移動的,即解析的IP位址為使用者指定廣州移動的IP位址。

5、DNS通過AnyCast技術進行三層負載均衡,類似于OSPF的等價路由,如8.8.8.8這個位址實際為一個AnyCast位址,即谷歌全球的遞歸DNS伺服器均使用8.8.8.8作為Global DNS位址,當使用者通過8.8.8.8請求域名解析時會帶上自己的DNS伺服器位址進行請求,即8.8.8.8會查詢請求過來的用戶端位址是哪裡的IP位址,如果是北京聯通的,即将請求解析為北京聯通的一個IP位址或解析為北京聯通的一個負載均衡節點CNAME域名。

6、為了達到更精準備的DNS解析排程,谷歌還研發了edns-client-subnet,即在DNS授權、遞歸、緩存上均支援該Edns協定,支援該協定後,使用者在請求DNS域名解析時,會帶上自己用戶端的源IP位址放在請求包裡,而非用戶端配置的DNS伺服器IP位址。這樣就有效的避免了使用者使用Global DNS伺服器時不能排程精準的問題。(有關DNS授權、遞歸等問題可以參照RFC 1034和1035)

7、按照以上流程使用者請求www.abc.com.cdncache01.com,會得到一個距離使用者上網所在地域最近的一個CDN緩存節點的IP位址即樓主圖中的反向代理服務節點。假設IP位址為1.2.3.4。

8、使用者請求1.2.3.4的流媒體業務,節點1.2.3.4通過LVS及其它負載均衡技術将使用者的請求分釋出該節點内最優最快的緩存伺服器,如伺服器E,IP地位址為192.168.1.4,即由192.168.1.4進行業務處理。

9,伺服器192.168.1.4直接将結果傳回給使用者。

附DNS解析流程圖:

繼續閱讀