【讀書筆記】全局負(fù)載均衡工作原理及實(shí)現(xiàn)

[TOC]

《CDN技術(shù)詳解》讀書筆記

圖片.png

全局負(fù)載均衡工作原理及實(shí)現(xiàn)

1. 全局負(fù)載均衡在 CDN 系統(tǒng)中的作用

  • CDN 系統(tǒng)總是希望使用距離用戶最近的設(shè)備為用戶提供服務(wù),這樣就需要在全網(wǎng)不同位置部署多個(gè)節(jié)點(diǎn)。CDN 全局負(fù)載均衡系統(tǒng)GSLB就是為了解決節(jié)點(diǎn)之間相互協(xié)同的問(wèn)題,實(shí)現(xiàn)整個(gè)系統(tǒng)的大規(guī)模服務(wù)能力和高可用性。
  • GSLB 主要是在多個(gè)節(jié)點(diǎn)之間進(jìn)行均衡,其結(jié)果可能直接終結(jié)負(fù)載均衡的過(guò)程,也可能將用戶訪問(wèn)交付給下一層次的負(fù)載均衡系統(tǒng)
  • 在區(qū)域或者本地的負(fù)載均衡系統(tǒng)中,每個(gè)服務(wù)節(jié)點(diǎn)只掌握本節(jié)點(diǎn)內(nèi)服務(wù)設(shè)備的信息,而在 GSLB 系統(tǒng)中,需要掌握所有節(jié)點(diǎn)中的信息

2. 基于DNS解析的GSLB實(shí)現(xiàn)機(jī)制

首先明白什么是DNS解析:

DNS 記錄類型及報(bào)文格式:

  1. A 記錄, Address。描述了域名到IP地址的映射關(guān)系,對(duì)于同一個(gè)域名,可以存在多條映射記錄
  2. NS 記錄 Name Server。域名服務(wù)器記錄,用于指定域名由哪個(gè)DNS服務(wù)器來(lái)進(jìn)行解析的。
  3. SOA 記錄 Start Of Authority。記錄指定該區(qū)域的權(quán)威域名服務(wù)器。
  4. CNAME。記錄別名于域名的對(duì)應(yīng)關(guān)系,這種記錄允許將多個(gè)名字映射到同一臺(tái)計(jì)算機(jī)上
  5. PTR 記錄, Point Record。記錄用于描述 IP 地址到域名的映射關(guān)系。

基于 DNS 解析實(shí)現(xiàn) GSLB的幾種方法:

基于 DNS 解析的 GSLB 方案實(shí)際上是把負(fù)載均衡設(shè)備部署在 DNS 系統(tǒng)中。在用戶發(fā)出請(qǐng)求時(shí),先通過(guò) DNS 系統(tǒng)來(lái)請(qǐng)求獲得服務(wù)器的 IP 地址,基于 DNS 的 GSLB 正是在返回 DNS 結(jié)果的過(guò)程中進(jìn)行智能決策,給用戶返回合適的IP 地址

1. 通過(guò)CNAME方式實(shí)現(xiàn)負(fù)載均衡

  • CNAME 描述了一個(gè)域名或主機(jī)名的別名,域名服務(wù)器獲取到 CNAME 記錄后,會(huì)用記錄中的別名來(lái)替換查找的域名或者主機(jī)名。
  • 實(shí)現(xiàn)上利用了 DNS 本身的別名機(jī)制和輪訓(xùn)機(jī)制。
  • 先將 GSLB 主機(jī)名定義為所查詢域名的權(quán)威 DNS服務(wù)器的別名,然后在 GSLB 主機(jī)名添加多條 A 記錄,分別對(duì)應(yīng)多個(gè)服務(wù)器的 IP 地址。這樣,本地 DNS 服務(wù)器會(huì)向客戶端返回多個(gè)IP地址作為查詢結(jié)果,并且這些IP地址的排列順序是輪換的

2. 負(fù)載均衡器作為權(quán)威 DNS 服務(wù)器

  • 負(fù)載均衡器作為權(quán)威 DNS 服務(wù)器,這樣 GSLB 會(huì)接收到所有對(duì)這個(gè)域的 DNS 請(qǐng)求,從而能夠根據(jù)預(yù)設(shè)的一些策略來(lái)進(jìn)行智能 DNS 解析。
  • 所有的請(qǐng)求通過(guò) GSLB ,對(duì)于DNS 解析能力會(huì)造成或多或少的影響。

3. 負(fù)載均衡器作為代理 DNS服務(wù)器

  • 這種情況下,負(fù)載均衡器也是注冊(cè)為一個(gè)域名空間的權(quán)威 DNS 服務(wù)器而真正的權(quán)威域名服務(wù)器則部署在負(fù)載均衡器后面。所有的請(qǐng)求會(huì)先到達(dá)負(fù)載均衡器,由負(fù)載均衡器轉(zhuǎn)發(fā)給真正的權(quán)威 DNS 服務(wù)器,然后修改權(quán)威DNS服務(wù)器返回的響應(yīng)信息,從而達(dá)到負(fù)載均衡。

負(fù)載均衡的策略判斷條件

  1. 服務(wù)器的“健康狀況”。健康檢查,未通過(guò)的不能作為域名解析結(jié)果
  2. 地理區(qū)域距離。由于 DNS 系統(tǒng)本身的工作原理所限,GSLB 只能看到用戶本地 DNS 服務(wù)器的 IP 地址,看不到用戶終端的IP位置
  3. 會(huì)話保持。需要保證同一用戶訪問(wèn)被調(diào)度到同一臺(tái)服務(wù)器上。
  4. 響應(yīng)時(shí)間。通過(guò)測(cè)量服務(wù)器對(duì)于響應(yīng)的時(shí)間,優(yōu)化 GSLB 的策略
  5. IP 地址權(quán)重。權(quán)重值決定了某個(gè) IP 與其他候選 IP 相比分配到的流量比例。
  6. 會(huì)話能力閥值。 GSLB 控制器可以獲取每個(gè)服務(wù)器當(dāng)前可用的會(huì)話數(shù)和會(huì)話表大小的最大值,達(dá)到閥值的服務(wù)器,將不會(huì)被選擇
  7. 往返時(shí)間 RTT Rount-Trip Time。
  8. 其他信息,包括服務(wù)器當(dāng)前可用會(huì)話數(shù)、最小選擇次數(shù)、輪訓(xùn)等

3. 基于DNS的GSLB 應(yīng)用部署方式

  • 域組 Domain Group:根據(jù)別名設(shè)置,用戶根據(jù)別名選擇提供服務(wù)的服務(wù)池與具體的虛擬服務(wù)器。
  • 服務(wù)池 Pool:提供同種業(yè)務(wù)的多個(gè)虛擬服務(wù)器的邏輯組概念。
  • 虛擬服務(wù)器 Virtual Server:用戶訪問(wèn)網(wǎng)站時(shí),直接提供服務(wù)的虛擬設(shè)備,其 IP 地址就是 GSLB 最終解析返回的地址。
  • 區(qū)域 Region:用戶的本地 DNS 所代表的地址范圍,用戶可以通過(guò)在瀏覽器中設(shè)置本地 DNS 地址來(lái)定義所在區(qū)域。
  • 策略:GSLB 的路由控制策略。

負(fù)載均衡策略:

均衡策略:

  • 靜態(tài)策略
    1. 基于特定的用戶源 IP 地址。特定的 IP 地址端定向到特定的 POP 節(jié)點(diǎn)。
    2. 基于加權(quán)的 IP 地址。
    3. 基于加權(quán)的 POP節(jié)點(diǎn)。POP 節(jié)點(diǎn)對(duì)應(yīng)的級(jí)別是虛擬服務(wù)器。
    4. 基于地理位置。
    5. 基于POP 節(jié)點(diǎn)管理優(yōu)先級(jí)。
    6. 基于簡(jiǎn)單輪訓(xùn)。
  • 動(dòng)態(tài)策略
    1. 基于 POP 節(jié)點(diǎn)的健康狀況。
    2. 基于相對(duì)會(huì)話能力。GSLB會(huì)周期性的計(jì)算當(dāng)前會(huì)話數(shù)和最大會(huì)話數(shù)的比值,然后與最大閥值進(jìn)行比較。超過(guò)閥值,該節(jié)點(diǎn)不是選擇的最佳節(jié)點(diǎn)。
    3. 基于絕對(duì)會(huì)話能力。不計(jì)算相對(duì)會(huì)話的比值,而是直接使用當(dāng)前會(huì)話數(shù)與最大閥值做比較。
    4. 基于物理服務(wù)器綁定。
    5. 基于主動(dòng)測(cè)量的用戶訪問(wèn)往返時(shí)間 RTT。
    6. 基于被動(dòng)測(cè)量的用戶訪問(wèn)往返時(shí)間。
    7. 基于新建連接數(shù)
    8. 基于流量。根據(jù)POP節(jié)點(diǎn)或者虛擬服務(wù)器每秒完成多少比特?cái)?shù)據(jù)的吞吐。
    9. 基于POP節(jié)點(diǎn)訪問(wèn)次數(shù)

4. 基于應(yīng)用層協(xié)議重定向的 GSLB

工作流程:

  1. 用戶首先向網(wǎng)站的本地 DNS 請(qǐng)求域名解析。
  2. 由于網(wǎng)站事先進(jìn)行了域名 CNAME 指向 CDN 的GSLB 域名和 IP 所以本地DNS會(huì)向用戶返回 GSLB 設(shè)備的 IP 地址。
  3. 用戶向中動(dòng)態(tài) GSLB 設(shè)備發(fā)送 HTTP GET 請(qǐng)求,請(qǐng)求該網(wǎng)站的某個(gè)資源。
  4. GSLB設(shè)備根據(jù)綜合分析用戶IP、內(nèi)容分布、設(shè)備負(fù)載、鏈路狀況等實(shí)時(shí)信息,為用戶選擇一個(gè)合適的服務(wù)單元。
  5. 用戶根據(jù)得到的IP 地址向 CDN 節(jié)點(diǎn)發(fā)送媒體訪問(wèn)請(qǐng)求。
  6. 如果這個(gè)IP地址仍然·是一個(gè)負(fù)載均衡設(shè)備,該設(shè)備會(huì)選擇一個(gè)具體的設(shè)備,返回給用戶。
  7. 用戶根據(jù)得到的 IP 地址,再次發(fā)送請(qǐng)求。

5. 基于 IP 路由的 GSLB

  1. 先為兩個(gè)本地負(fù)載均衡器配置一個(gè)相同的 VIP 地址,對(duì) IP 網(wǎng)上的路由器來(lái)說(shuō),這是到達(dá)同一IP地址的兩條不同的路由。
  2. 終端發(fā)送請(qǐng)求時(shí),當(dāng)經(jīng)過(guò)路由器,會(huì)根據(jù)路由表來(lái)選擇走哪條路徑,轉(zhuǎn)發(fā)數(shù)據(jù)包到本地負(fù)載均衡器上。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. 背景 負(fù)載均衡(又稱為負(fù)載分擔(dān)),英文名稱為L(zhǎng)oad Balance,其意思就是將負(fù)載(工作任務(wù))進(jìn)行平衡、...
    大富帥閱讀 3,622評(píng)論 0 2
  • 轉(zhuǎn):http://kb.cnblogs.com/page/188170/ (一) 簡(jiǎn)單理解四層和七層負(fù)載...
    菜鳥小玄閱讀 1,142評(píng)論 0 3
  • 開(kāi)頭先理解一下所謂的“均衡”不能狹義地理解為分配給所有實(shí)際服務(wù)器一樣多的工作量,因?yàn)槎嗯_(tái)服務(wù)器的承載能力各不相同,...
    野柳閱讀 1,970評(píng)論 0 1
  • 一、什么是負(fù)載均衡? 互聯(lián)網(wǎng)早期,業(yè)務(wù)流量比較小并且業(yè)務(wù)邏輯比較簡(jiǎn)單,單臺(tái)服務(wù)器便可以滿足基本的需求;但隨著互聯(lián)網(wǎng)...
    彬彬醬閱讀 2,296評(píng)論 0 19
  • 原文 一、什么是負(fù)載均衡? 互聯(lián)網(wǎng)早期,業(yè)務(wù)流量比較小并且業(yè)務(wù)邏輯比較簡(jiǎn)單,單臺(tái)服務(wù)器便可以滿足基本的需求;但隨著...
    baby_buibui閱讀 246評(píng)論 0 1

友情鏈接更多精彩內(nèi)容