高可用技術(shù)分析-創(chuàng)新互聯(lián)

高可用是通過某種協(xié)議或技術(shù),協(xié)調(diào)服務(wù)端為客戶端提供持續(xù)性服務(wù)。

創(chuàng)新互聯(lián)建站堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的贛縣網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

歸納為三種方式:

  1. 客戶端對服務(wù)端服務(wù)進(jìn)行健康管理,自動(dòng)容錯(cuò)

  1. 服務(wù)端通過容錯(cuò)或網(wǎng)關(guān)協(xié)議提供統(tǒng)一的服務(wù)地址

  1. 服務(wù)端通過高可用模塊通知客戶端更新服務(wù)地址。

從客戶端調(diào)用服務(wù)端維度來考慮,高可用就是 客戶端調(diào)用服務(wù)端持續(xù)可用,兩種方法,一種在客戶端來做,一種在服務(wù)端來做:

  1. 客戶端調(diào)用多個(gè)服務(wù)端地址,客戶端通過自動(dòng)容錯(cuò)服務(wù)端,保證高可用。

  1. 客戶端調(diào)用一個(gè)服務(wù)端地址,服務(wù)端通過容錯(cuò)協(xié)議提供高可用地址,保證高可用。

  1. 客戶端調(diào)用一個(gè)服務(wù)端地址,服務(wù)端通過高可用模塊檢測故障,通知客戶端更新服務(wù)地址,保證高可用。

一次完整的服務(wù)請求過程包括以下組件:

  1. DNS

  1. LB

  1. Webapp

  1. Service

  1. DB

應(yīng)用整體高可用需要每層每個(gè)組件高可用。

我們依次分析各層各個(gè)組件的高可用情況。

客戶端

客戶端為邊緣節(jié)點(diǎn),是最終使用者。

  • 客戶端配置主備DNS地址,主DNS故障時(shí),請求被DNS

  • 客戶端調(diào)用一個(gè)負(fù)載均衡地址,負(fù)載均衡保證該地址高可用

外部與下游服務(wù)

  • 主備DNS

  • 高可用LB

DNS

DNS通過提供主備DNS,提供域名解析服務(wù)的高可用,同時(shí)輔以本地DNS緩存。

  • 對外提供主備DNS地址

  • 主DNS故障時(shí),備DNS提供服務(wù)。

  • 通過 區(qū)域傳輸技術(shù) 實(shí)現(xiàn)主備配置數(shù)據(jù)同步。

外部與下游服務(wù)

  • 主備DNS

https://www.rfc-editor.org/rfc/rfc1995https://www.rfc-editor.org/rfc/rfc1995 Incremental Zone Transfer in DNS
https://www.rfc-editor.org/rfc/rfc5936 DNS Zone Transfer Protocol (AXFR)
DNS 客戶端解析超時(shí)
傳統(tǒng)LB
這里指內(nèi)網(wǎng)負(fù)載均衡

傳統(tǒng)LB一般采用 Keepalived+反向代理 方案, 通過Keepalived基于 VRRP協(xié)議 實(shí)現(xiàn)負(fù)載均衡的高可用。

  • 對外提供VIP

  • Keepalived負(fù)載負(fù)載均衡高可用

  • Keepalived通過配置優(yōu)先級(jí)選擇主Keepalived實(shí)例

  • 主實(shí)例故障時(shí),選擇優(yōu)先級(jí)高的備實(shí)例為主實(shí)例

  • 主實(shí)例周期性的向備實(shí)例發(fā)送VRRP通告報(bào)文

  • 備實(shí)例三個(gè)周期間隔沒有收到通告報(bào)文,備實(shí)例發(fā)起VRRP通告報(bào)文,根據(jù)優(yōu)先級(jí),選擇優(yōu)先級(jí)高的作為主實(shí)例。

  • Keepalived對反向代理進(jìn)行健康管理,保證反向代理可用性

  • 反向代理對后端實(shí)例進(jìn)行健康檢測,保證后端服務(wù)可用性

外部與下游服務(wù)

  • 多實(shí)例Webapp

https://datatracker.ietf.org/doc/rfc3768/https://datatracker.ietf.org/doc/rfc3768/ Virtual Router Redundancy Protocol (VRRP)
https://datatracker.ietf.org/doc/rfc5798/ Virtual Router Redundancy Protocol (VRRP) Version 3 for IPv4 and IPv6
騰訊CLB

騰訊CLB集群由多臺(tái)LD組成,通過OSPF協(xié)議保證集群高可用性。

  • 若一臺(tái)LD發(fā)生故障,OSPF協(xié)議可以保證10秒以內(nèi)把LD服務(wù)器從集群中剔除。

  • 跨集群通過上層輪詢來保證可用性。

騰訊支持機(jī)架級(jí)容災(zāi)。機(jī)房級(jí)(跨AZ)容災(zāi)在內(nèi)測中。
https://www.rfc-editor.org/rfc/rfc2328 OSPF Version 2
阿里SLB

阿里SLB,通過BGP協(xié)議實(shí)現(xiàn)跨可用區(qū)容災(zāi),通過云解析DNS等產(chǎn)品實(shí)現(xiàn)跨地域容災(zāi)。

以同一個(gè)地域雙可用區(qū)為例,即同城雙機(jī)房:

  • 每個(gè)機(jī)房部署各兩個(gè)節(jié)點(diǎn)

  • 兩個(gè)機(jī)房共用負(fù)載均衡配置信息,通過配置大小段路由控制流量指向。

  • 當(dāng)一個(gè)機(jī)房故障時(shí),通過BGP協(xié)議自動(dòng)秒級(jí)收斂路由,外部訪問的流量會(huì)被轉(zhuǎn)發(fā)給另外一個(gè)機(jī)房的SLB。

阿里SLB支持機(jī)房級(jí)容災(zāi)。
https://www.rfc-editor.org/rfc/rfc4271https://www.rfc-editor.org/rfc/rfc4271 A Border Gateway Protocol 4 (BGP-4)
https://help.aliyun.com/document_detail/67915.html 產(chǎn)品高可用
Webapp

Webapp負(fù)責(zé)業(yè)務(wù)頁面層,掛載到LB后邊。

  • 對外提供多個(gè)實(shí)例地址

  • 實(shí)例通常為無狀態(tài)可橫向擴(kuò)展

  • 單個(gè)故障不影響服務(wù),負(fù)載均衡會(huì)對其進(jìn)行健康檢測,自動(dòng)剔除與恢復(fù)

外部與下游服務(wù)

  • 服務(wù)注冊與發(fā)現(xiàn)

  • 多實(shí)例Service

服務(wù)注冊與發(fā)現(xiàn)作為關(guān)鍵組件,需要提供高可用注冊與發(fā)現(xiàn)服務(wù)
不同的服務(wù)注冊與發(fā)現(xiàn)的高可用大同小異,使用到的關(guān)鍵組件均做到高可用。
除了部署多實(shí)例,上游服務(wù)一般會(huì)緩存服務(wù)發(fā)現(xiàn)的結(jié)果,即使服務(wù)注冊與發(fā)現(xiàn)系統(tǒng)出現(xiàn)短暫的故障,也對業(yè)務(wù)影響較小。
Service

Service負(fù)責(zé)業(yè)務(wù)層,提供專項(xiàng)服務(wù)。

  • 對外提供多個(gè)實(shí)例地址

  • 實(shí)例通常為無狀態(tài)可橫向擴(kuò)展

  • 單個(gè)故障不影響服務(wù),客戶端與服務(wù)注冊與發(fā)現(xiàn)組件會(huì)對service進(jìn)行健康管理,保證Service服務(wù)整體可用

外部與下游服務(wù)

  • Service

  • DB

  • 緩存

  • 消息中間件

Service間調(diào)用與webapp調(diào)用service相同
傳統(tǒng)DB

數(shù)據(jù)庫用于保存服務(wù)數(shù)據(jù),是業(yè)務(wù)的核心。

以MySQL為例,采用MySQL+Keepalived方案提供高可用

  • 對外提供VIP

  • 默認(rèn)主實(shí)例提供讀寫,主實(shí)例故障Keepalived漂移VIP到備實(shí)例,備實(shí)例提供讀寫服務(wù)

  • 主備通過半同步保證數(shù)據(jù)一致性,網(wǎng)絡(luò)波動(dòng)時(shí)降級(jí)為異步復(fù)制,存在數(shù)據(jù)不一致的情況

主備切換,可能因?yàn)榫W(wǎng)絡(luò)問題出現(xiàn)數(shù)據(jù)丟失的問題。
網(wǎng)絡(luò)出現(xiàn)分區(qū),存在腦裂的情況,腦裂導(dǎo)致數(shù)據(jù)庫多主,業(yè)務(wù)數(shù)據(jù)出現(xiàn)錯(cuò)亂,需要盡量避免這種情況
建議當(dāng)出現(xiàn)主實(shí)例停止服務(wù),網(wǎng)絡(luò)分區(qū)等故障時(shí),備實(shí)例提供只讀服務(wù),避免因多主導(dǎo)致業(yè)務(wù)數(shù)據(jù)錯(cuò)亂,較難恢復(fù)的情況。
數(shù)據(jù)強(qiáng)一致性問題,可以考慮采用基于分布式一致性協(xié)議的新數(shù)據(jù)庫系統(tǒng)
騰訊云 云數(shù)據(jù)庫 MySQL

騰訊云數(shù)據(jù)庫MySQL內(nèi)網(wǎng)使用IP端口訪問,外網(wǎng)使用域名端口訪問。

資料較少,可能與實(shí)際情況不符,僅供參考。

內(nèi)網(wǎng)訪問路徑為:SLB,MySQL

外網(wǎng)訪問路徑為:DNS,SLB,MySQL

Proxy訪問路徑為:Proxy MySQL

  • DNS通過主備提供高可用

  • SLB通過OSPF內(nèi)部網(wǎng)關(guān)協(xié)議,提供高可用

  • MySQL主實(shí)例故障后,自動(dòng)檢測,自動(dòng)故障遷移到備實(shí)例,DNS、SLB地址不變

  • Proxy

  • 采用集群架構(gòu)部署,多節(jié)點(diǎn)保證故障平滑轉(zhuǎn)移。

  • 可以通過跨可用區(qū)部署的方式來提升數(shù)據(jù)庫代理的可用性。

阿里云 云數(shù)據(jù)庫 RDS

數(shù)據(jù)庫訪問路徑為:DNS,SLB,Proxy,RDS

  • 對外提供唯一DNS地址訪問,應(yīng)用應(yīng)關(guān)閉相關(guān)DNS緩存

  • 高可用模塊檢測到主數(shù)據(jù)庫實(shí)例故障時(shí),切換到備數(shù)據(jù)庫實(shí)例服務(wù),DNS地址不變

資料較少,可能與實(shí)際情況不符,僅做參考。
把RDS當(dāng)成一個(gè)應(yīng)用來看,每一層都需要保證高可用
DNS通過主備提供高可用
SLB通過網(wǎng)關(guān)協(xié)議BGP提供高可用
獨(dú)享代理是高可用架構(gòu),擁有2個(gè)節(jié)點(diǎn),并且出現(xiàn)故障時(shí)會(huì)自動(dòng)切換到備節(jié)點(diǎn)。
RDS通過高可用模塊檢測故障,通知上層更新后端地址,實(shí)現(xiàn)RDS高可用(有狀態(tài)應(yīng)用上層掛載一個(gè)后端地址,與普通無狀態(tài)應(yīng)用不同,無狀態(tài)應(yīng)用上層直接掛載多個(gè)后端地址)
總結(jié)

總結(jié)以上高可用方案,發(fā)現(xiàn)以下特點(diǎn)

  1. 多實(shí)例

  1. 客戶端連接多個(gè)地址,服務(wù)端提供多個(gè)連接地址。

  1. 客戶端對服務(wù)端進(jìn)行健康管理,自動(dòng)容錯(cuò)

  1. 應(yīng)用客戶端操作系統(tǒng)對DNS服務(wù)進(jìn)行健康管理

  1. Keepalived對反向代理服務(wù)進(jìn)行健康管理

  1. 反向代理對Webapp服務(wù)進(jìn)行健康管理

  1. Webapp對Service服務(wù)進(jìn)行健康管理

  1. Service對DB服務(wù)進(jìn)行健康管理(Service使用mysql connector連接多個(gè)TiDB Server啟用故障轉(zhuǎn)移)

  1. 同時(shí)可以結(jié)合中間服務(wù)(服務(wù)注冊與發(fā)現(xiàn)),提高服務(wù)容錯(cuò)效率(服務(wù)發(fā)現(xiàn)通知客戶端隔離某個(gè)服務(wù))。

  1. 客戶端連接一個(gè)地址,服務(wù)端通過某種協(xié)議與技術(shù),提供一個(gè)地址,保證其高可用。

  1. Keepalived通過VRRP協(xié)議,保證VIP高可用

  1. 騰訊CLB通過OSPF協(xié)議,保證VIP高可用

  1. 阿里SLB通過BGP協(xié)議,保證VIP高可用

  1. 阿里RDS通過HA模塊,通知上層更新連接地址,保證服務(wù)高可用(類似于服務(wù)注冊與發(fā)現(xiàn))

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

分享文章:高可用技術(shù)分析-創(chuàng)新互聯(lián)
轉(zhuǎn)載來于:http://muchs.cn/article48/cspcep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)網(wǎng)站內(nèi)鏈、微信公眾號(hào)、定制網(wǎng)站、網(wǎng)站收錄、全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)