GSLB概要和實(shí)現(xiàn)原理


本文首次發(fā)布于 : chongit.github.io

Tags : GSLB全局負(fù)載均衡俐镐,DNS


What is GSLB

Global Server Load Balancing

中文:全局負(fù)載均衡

SLB(Server load balancing)是對(duì)集群內(nèi)物理主機(jī)的負(fù)載均衡佩抹,而GSLB是對(duì)物理集群的負(fù)載均衡棍苹。
這里的負(fù)載均衡可能不只是簡(jiǎn)單的流量均勻分配,而是會(huì)根據(jù)策略的不同實(shí)現(xiàn)不同場(chǎng)景的應(yīng)用交付枢里。

GSLB是依賴于用戶和實(shí)際部署環(huán)境的互聯(lián)網(wǎng)資源分發(fā)技術(shù)栏豺,不同的目的對(duì)應(yīng)著一系列不同的技術(shù)實(shí)現(xiàn)奥洼。

Why GSLB

總結(jié)為:

  • 高可用性
  • 更快的響應(yīng)時(shí)間
  • 多版本分發(fā)

具體:

  1. Disater recovery,發(fā)生故障時(shí)提供一個(gè)備用的位置來(lái)獲取資源或者能提供可簡(jiǎn)易調(diào)整流量的裝置灵奖,或兩者都能提供。
  2. Load sharing,基于多個(gè)地理位置的流量分發(fā)骡尽,可以做到:
a.盡量節(jié)省帶寬
b.限制給定位置的能力
c.限制暴露斷電,地理災(zāi)害等問(wèn)題
  1. Performance,將資源置于離用戶更近的地方爆阶,增強(qiáng)用戶體驗(yàn)辨图。
  2. 多版本,根據(jù)本地政策提供不同版本的資源故河,或者根據(jù)自定義的規(guī)則提供為特殊用戶提供特殊版本鱼的,如灰度交付等痘煤。

How implements GSLB

主流的技術(shù)實(shí)現(xiàn)

DNS

GSLB會(huì)替代最終的DNS的服務(wù)器從而實(shí)現(xiàn)自己的解析策略衷快,返回給用戶最合適的IP(列表)蘸拔。

As-DNS-Server

一個(gè)普通的DNS請(qǐng)求:

① 用戶提交域名
② 客戶端解析域名
③ DNS服務(wù)器解析出IP
④ 客戶端請(qǐng)求IP
⑤ 返回結(jié)束

加入了GSLB的請(qǐng)求:

① 提交域名
② 客戶端解析域名
③ NS解析到GSLB-
④ GSLB解析并返回IP
⑤ 客戶端請(qǐng)求IP
⑥ 返回結(jié)束

特點(diǎn):

  • 這個(gè)技術(shù)對(duì)原業(yè)務(wù)的侵入性最小调窍,被商業(yè)ADC廣泛實(shí)現(xiàn)邓萨,如A10,F(xiàn)5等湿刽。

  • 但是可以得到的信息很有限褐耳,IP的定位只能靠Local DNS铃芦,因?yàn)榈貌坏皆碔P.

HTTP redirection

使用HTTP重定向?qū)?nèi)容轉(zhuǎn)發(fā)到不同位置.

a. 請(qǐng)求的域名均解析為GSLB機(jī)器的IP.
b. GSLB根據(jù)源IP等信息解析出新的IP并使用HTTP重定向技術(shù)將用戶請(qǐng)求重定向到目標(biāo)主機(jī).
HTTP-Redirection

請(qǐng)求過(guò)程:

    ① 提交域名
    ② 客戶端解析域名
    ③ DNS解析域名為GSLB
    ④ 客戶端提交請(qǐng)求給GSLB服務(wù)器
    ⑤ GSLB解析出目標(biāo)IP并發(fā)起HTTP轉(zhuǎn)發(fā)
    ⑥ 客戶讀轉(zhuǎn)發(fā)請(qǐng)求到目標(biāo)IP
    ⑦ 返回結(jié)束
    

特點(diǎn):

  • 這個(gè)方案只適用于HTTP.

  • 這個(gè)方案的實(shí)現(xiàn)可以是L7負(fù)載均衡工具如Nginx仁烹、HTTPD等

IP Route

更改IP首部實(shí)現(xiàn)使用跳轉(zhuǎn).并利用IP tunneling技術(shù)實(shí)現(xiàn)只對(duì)請(qǐng)求負(fù)載均衡(響應(yīng)直接返回).

a. 請(qǐng)求的域名均解析為GSLB機(jī)器的IP.
b. 負(fù)載均衡設(shè)備可以解析出目標(biāo)地址,然后封裝IP包發(fā)給目標(biāo)地址.
c. 目標(biāo)服務(wù)器收到請(qǐng)求包并處理,解析出被封裝的IP包可以得到客戶端地址,把響應(yīng)直接返回.
Route-Injection.png

請(qǐng)求過(guò)程:

① 提交域名
② 客戶端解析域名
③ DNS解析域名為GSLB-
④ 客戶端提交請(qǐng)求給GSLB服務(wù)器
⑤ GSLB發(fā)送請(qǐng)求到目標(biāo)服務(wù)器
⑥ 目標(biāo)服務(wù)器直接返回請(qǐng)求給客戶端結(jié)束

特點(diǎn)

  • 這個(gè)方案能解決不能獲得源IP和HTTP Only的問(wèn)題,也不會(huì)成為性能瓶頸.但由于是IP層的LB征唬,因此得到的信息很有限茁彭,也就是做分發(fā)的策略會(huì)很有限.***
  • 實(shí)現(xiàn)方式主要就是LVS的VS/TUN模式.如果自己編寫會(huì)更靈活理肺,但難度較大.***

統(tǒng)一調(diào)度服務(wù)層

客戶端SDK+調(diào)度服務(wù)完成GSLB設(shè)備的功能妹萨。

a. 客戶端使用原地址請(qǐng)求服務(wù)時(shí)乎完,SDK會(huì)交付一個(gè)解析過(guò)的地址給客戶端.(或?qū)W(wǎng)絡(luò)請(qǐng)求模塊做Proxy)
b. SDK會(huì)通過(guò)一定的策略從調(diào)度服務(wù)中獲取解析地址(一個(gè)或多個(gè)).
c. SDK和調(diào)度服務(wù)會(huì)某種形式保持聯(lián)系(HTTP or TCP).
d. 出于性能考慮,SDK本身有Cache功能同時(shí)有時(shí)效限制(TTL)霍弹。
Schedule-Layer

調(diào)用試請(qǐng)求過(guò)程:

① 客戶端請(qǐng)求
② 調(diào)用SDK
③ SDK沒(méi)有命中緩存
④ SDK請(qǐng)求調(diào)度服務(wù)
⑤ 調(diào)度服務(wù)返回新地址
⑥ 客戶端用新地址發(fā)起請(qǐng)求
    

代理式請(qǐng)求過(guò)程:

① 客戶端發(fā)起請(qǐng)求
② 網(wǎng)絡(luò)請(qǐng)求Proxy攔截請(qǐng)求
③ Proxy沒(méi)有命中緩存
④ Proxy請(qǐng)求調(diào)度服務(wù)
⑤ 調(diào)度服務(wù)返回新地址
⑥ Proxy請(qǐng)求新地址

特點(diǎn)

  • 讓客戶端(SDK)具備了負(fù)載均衡知識(shí),而因此讓服務(wù)端可以獲得任何想要知道的信息,從而可以做更全面的解析策略台丛,但侵入性是最大的。

常見(jiàn)策略實(shí)現(xiàn)

  1. 地理區(qū)域变汪。地理&IP表蚁趁。
  2. IP權(quán)重,為每個(gè)IP分配權(quán)重番官,權(quán)重決定流量比例徘熔。
  3. 往返時(shí)間RTT淆党,分active RTT(請(qǐng)求時(shí)ping)和passive RTT(采集tcp的syn->act的時(shí)間)染乌。
  4. 業(yè)務(wù)自定義條件,如根據(jù)語(yǔ)言,UserID等.

方案的對(duì)比

方案1:

工具:使用現(xiàn)有的商用解決方案:F5慕匠,A10 Thunder.
優(yōu)點(diǎn):
  能靈活配置GSLB,滿足就近選擇台谊,位置備份等基本GSLB需求锅铅。
  除了GSLB以外,還能帶來(lái)對(duì)性能和安全的全解決方案玩荠,如防DDos阶冈,硬件加速SSL加解密等等女坑。
  當(dāng)我們的業(yè)務(wù)群越來(lái)越龐大時(shí)匆骗,這些需求會(huì)越來(lái)越迫切。

缺點(diǎn):
  貴盟广。

方案2

工具:編寫HTTP轉(zhuǎn)發(fā)服務(wù)或使用Nginx,HTTPD
優(yōu)點(diǎn):自由實(shí)現(xiàn),HTTP層可獲取的信息更多因此LB策略更靈活.
缺點(diǎn):只能是HTTP的轉(zhuǎn)發(fā)骏庸,另外可能會(huì)成為性能瓶頸.

方案3

工具:使用LVS的VS/TUN模式
優(yōu)點(diǎn):free
缺點(diǎn): 能實(shí)現(xiàn)的LB策略只能是LVS所支持的那些具被,如果想自己定義似乎不可能只损。

方案4

工具:編寫統(tǒng)一調(diào)度服務(wù)
優(yōu)點(diǎn):有HTTP轉(zhuǎn)發(fā)的所有優(yōu)點(diǎn)跃惫,而且不需要流量經(jīng)過(guò)爆存,因此性能要比HTTP轉(zhuǎn)發(fā)高很多。
缺點(diǎn):
  1. 需要客戶端的參與携冤。(基本排除了瀏覽器和升級(jí)困難)曾棕。稍顯復(fù)雜的緩存策略翘地。
  2. 這個(gè)服務(wù)會(huì)成為一個(gè)`移動(dòng)接入層`衙耕,將會(huì)具備相當(dāng)規(guī)模。(成本)渴杆。

總結(jié)

選擇方案首先選擇能完全滿足自己業(yè)務(wù)需求的方案.然后在從中選擇功能&性能/價(jià)格比最高的.

以上四個(gè)方案,也可以分為L(zhǎng)7層和其他.對(duì)于需要更多業(yè)務(wù)信息參與的負(fù)載均衡囊拜,則必須從7層協(xié)議入手.

方案2和方案4都可以解析7層協(xié)議的內(nèi)容冠跷,其中方案4則能更靈活的實(shí)現(xiàn)通用的負(fù)載均衡,條件是必須有客戶端的支持.因此如果能解決客戶端的問(wèn)題則方案4是比較好的方案蜜托,否則只能選擇方案2了.

另外也不一定選擇一種方案橄务,能有效結(jié)合這些方案會(huì)使負(fù)載均衡能力更強(qiáng)大.

比如方案4無(wú)法干預(yù)瀏覽器的請(qǐng)求,這個(gè)時(shí)候就需要使用其他方案來(lái)彌補(bǔ)(方案1,2,3皆可).

同時(shí)還要區(qū)分動(dòng)態(tài)資源和靜態(tài)資源的請(qǐng)求,以上方案主要使針對(duì)動(dòng)態(tài)資源的負(fù)載均衡,對(duì)于靜態(tài)資源,CDN提供了更好的解決方案.


參考資料:

Citrix的NetScaler說(shuō)明書: http://support.citrix.com/servlet/KbServlet/download/22506-102-671576/gslb-primer_FINAL_1019.pdf

GSLB和CND: http://blog.csdn.net/u010340143/article/details/9062213

智能DNS: http://www.cnblogs.com/peon/archive/2007/12/30/1021219.html

負(fù)載均衡: http://blog.arganzheng.me/posts/load-balance.html

LVS: http://www.linuxvirtualserver.org/zh/lvs1.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末穴亏,一起剝皮案震驚了整個(gè)濱河市蜂挪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌嗓化,老刑警劉巖棠涮,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異刺覆,居然都是意外死亡严肪,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門谦屑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)驳糯,“玉大人,你說(shuō)我怎么就攤上這事」倥В” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵桶良,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng)亥鸠,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任腰鬼,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好慧妄,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著费彼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪小染。 梳的紋絲不亂的頭發(fā)上踊赠,一...
    開(kāi)封第一講書人閱讀 51,125評(píng)論 1 297
  • 那天蓝晒,我揣著相機(jī)與錄音富蓄,去河邊找鬼。 笑死君珠,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的浸颓。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼赌莺,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起掠哥,我...
    開(kāi)封第一講書人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤牵咙,失蹤者是張志新(化名)和其女友劉穎构哺,沒(méi)想到半個(gè)月后途茫,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體囊卜,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年吁伺,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了矾克。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片揭绑。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡弓候,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出他匪,到底是詐尸還是另有隱情菇存,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布邦蜜,位于F島的核電站依鸥,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏悼沈。R本人自食惡果不足惜贱迟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望絮供。 院中可真熱鬧衣吠,春花似錦、人聲如沸壤靶。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)萍肆。三九已至,卻和暖如春胀屿,著一層夾襖步出監(jiān)牢的瞬間塘揣,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工宿崭, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留亲铡,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像奖蔓,于是被迫代替她去往敵國(guó)和親赞草。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 摘要:面對(duì)大量用戶訪問(wèn)吆鹤、高并發(fā)請(qǐng)求厨疙,海量數(shù)據(jù),可以使用高性能的服務(wù)器疑务、大型數(shù)據(jù)庫(kù)沾凄,存儲(chǔ)設(shè)備,高性能Web服務(wù)器知允,采...
    layjoy閱讀 13,807評(píng)論 3 93
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理撒蟀,服務(wù)發(fā)現(xiàn),斷路器温鸽,智...
    卡卡羅2017閱讀 134,651評(píng)論 18 139
  • 【摘要】 面對(duì)大量用戶訪問(wèn)保屯、高并發(fā)請(qǐng)求,海量數(shù)據(jù)涤垫,可以使用高性能的服務(wù)器姑尺、大型數(shù)據(jù)庫(kù),存儲(chǔ)設(shè)備雹姊,高性能Web服務(wù)器...
    靜修佛緣閱讀 4,557評(píng)論 0 24
  • ** 內(nèi)容安排: ** 簡(jiǎn)介 區(qū)別 Nginx吱雏、LVS及HAProxy負(fù)載均衡軟件的優(yōu)缺點(diǎn) 一敦姻、簡(jiǎn)介 ** 所謂四...
    薛晨閱讀 67,277評(píng)論 12 159
  • 一路向北镰惦,進(jìn)入號(hào)稱北京的后花園——烏蘭布統(tǒng)草原,語(yǔ)寶就興奮的念起“天蒼蒼犬绒,野茫茫旺入,風(fēng)吹草低見(jiàn)牛羊”。美麗神奇的烏蘭...
    金艷時(shí)光閱讀 493評(píng)論 0 4