999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

LBS檢索容災(zāi)架構(gòu)研究

2017-02-06 00:07:47符穎
無線互聯(lián)科技 2016年14期

符穎

摘要:文章結(jié)合LBS檢索場(chǎng)景提出了一個(gè)穩(wěn)定性容災(zāi)架構(gòu),通過過載保護(hù)、容災(zāi)環(huán)境、負(fù)載調(diào)度、分級(jí)發(fā)布等幾部分相互配合,為在線檢索服務(wù)提供了一個(gè)離線、在線相互配合的沙盒環(huán)境。該容災(zāi)架構(gòu)能在任一個(gè)檢索服務(wù)容量不足時(shí)快速地做出響應(yīng)并將流量引導(dǎo)到安全環(huán)境下,保證對(duì)用戶的影響降到最低,為服務(wù)的快速發(fā)布提供更多的保障。

關(guān)鍵詞:容災(zāi)系統(tǒng);過載保護(hù);容災(zāi)cache;負(fù)載均衡;分級(jí)發(fā)布

隨著移動(dòng)互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,互聯(lián)網(wǎng)開發(fā)模式采用持續(xù)迭代的方式來持續(xù)驅(qū)動(dòng)服務(wù)的不斷升級(jí),并采用分級(jí)/灰度發(fā)布的方式實(shí)現(xiàn)在線迭代產(chǎn)品特性。互聯(lián)網(wǎng)開發(fā)模式在快速改變著互聯(lián)網(wǎng)研發(fā)生態(tài)的同時(shí)也引入了更多的穩(wěn)定性風(fēng)險(xiǎn),而服務(wù)的持續(xù)穩(wěn)定是至關(guān)重要的,引入更快的迭代開發(fā)可能帶來服務(wù)質(zhì)量的下降,降低穩(wěn)定性風(fēng)險(xiǎn)是研究互聯(lián)網(wǎng)開發(fā)模式的重點(diǎn)。本文結(jié)合LBS檢索業(yè)務(wù)場(chǎng)景,引入容災(zāi)體系架構(gòu),為快速迭代開發(fā)的業(yè)務(wù)構(gòu)建穩(wěn)定性的容災(zāi)環(huán)境,解決服務(wù)穩(wěn)定性等問題。并設(shè)計(jì)一種主動(dòng)容災(zāi)系統(tǒng),其結(jié)合影響在線服務(wù)穩(wěn)定性的若干因素,使其一旦發(fā)生異常時(shí)盡可能減少對(duì)用戶的影響。

1在線服務(wù)穩(wěn)定性綜述

1.1影響在線服務(wù)穩(wěn)定性的若干因素

影響在線服務(wù)穩(wěn)定性的服務(wù)級(jí)因素因服務(wù)變更帶來更大的穩(wěn)定性風(fēng)險(xiǎn)。服務(wù)級(jí)的故障包括3個(gè)方面,其中用戶請(qǐng)求包括突發(fā)流量和異常流量,突發(fā)流量可能導(dǎo)致服務(wù)上限被打破,異常流量可能導(dǎo)致整個(gè)服務(wù)的崩潰。變更包括服務(wù)變更、程序升級(jí)、基礎(chǔ)數(shù)據(jù)的實(shí)時(shí)更新等。系統(tǒng)因素可以定義為服務(wù)所在的宿主節(jié)點(diǎn)的網(wǎng)絡(luò)等突發(fā)故障或被爭(zhēng)搶帶來服務(wù)異常表現(xiàn)的一些因素。這類問題的觸發(fā)本身是不可抗力的,但可以通過服務(wù)級(jí)的調(diào)度快速發(fā)現(xiàn)并隔離這些異常節(jié)點(diǎn)。

1.2主動(dòng)容災(zāi)系統(tǒng)設(shè)計(jì)

主動(dòng)容災(zāi)系統(tǒng)設(shè)計(jì)的主要目標(biāo)是通過實(shí)時(shí)診斷監(jiān)測(cè)可能的異常行為并立即進(jìn)行補(bǔ)救處理,將對(duì)用戶的影響降到最低甚至無影響。整體架構(gòu)如圖1所示。

整體架構(gòu)包括4個(gè)部分:過載保護(hù)主要通過活躍線程狀態(tài)指標(biāo)快速判定服務(wù)當(dāng)前是否處于過載狀態(tài),一旦過載就會(huì)立即拒絕無法及時(shí)處理的請(qǐng)求并向上匯報(bào)過載狀態(tài),主要通過檢測(cè)活躍線程的狀態(tài)趨勢(shì)對(duì)服務(wù)狀態(tài)作出可能的判斷。容災(zāi)環(huán)境提供了保證服務(wù)穩(wěn)定輸出的在線環(huán)境,它由容災(zāi)cache和延遲環(huán)境2個(gè)部分組成。負(fù)載調(diào)度是面向服務(wù)的頂層節(jié)點(diǎn)進(jìn)行調(diào)度,通過對(duì)頂層節(jié)點(diǎn)作過載判斷或異常隔離來對(duì)頂層節(jié)點(diǎn)進(jìn)行實(shí)時(shí)流量調(diào)度與負(fù)載均衡,當(dāng)項(xiàng)層節(jié)點(diǎn)容量不足或不可用的時(shí)候,會(huì)實(shí)時(shí)將流量引到容災(zāi)系統(tǒng)。分級(jí)發(fā)布主要包括服務(wù)和數(shù)據(jù)的發(fā)布,通過分級(jí)發(fā)布實(shí)現(xiàn)數(shù)據(jù)或服務(wù)的灰度上線。

2在線穩(wěn)定性系統(tǒng)設(shè)計(jì)

2.1過載保護(hù)

容量和性能對(duì)于在線服務(wù)是非常重要的,一般情況下通過擴(kuò)容或性能優(yōu)化不斷地提升服務(wù)容量,滿足更多的用戶訪問需求,通過不斷的優(yōu)化性保證用戶的訪問體驗(yàn)。對(duì)于在線服務(wù)而言,服務(wù)不可用是災(zāi)難性的。常規(guī)的容災(zāi)手段多數(shù)屬于事后容災(zāi),因此如何通過服務(wù)行為的變化快速診斷出可能的系統(tǒng)異常十分重要。

從容量的角度來講,可以分為2個(gè)方面:一是極端情況下的服務(wù)宕機(jī),會(huì)導(dǎo)致拒絕及服務(wù)容量的突然下降,服務(wù)宕機(jī)通過心跳或連接狀態(tài)等都能比較快地發(fā)現(xiàn);一種則是服務(wù)異常或流量突增導(dǎo)致系統(tǒng)臨時(shí)容量不足,服務(wù)宕機(jī)進(jìn)一步規(guī)約宕機(jī)也可認(rèn)為是容量不足。

容量不足不等于系統(tǒng)完全不可用,需要極力規(guī)避服務(wù)容量不足時(shí)的雪崩效應(yīng)以保證容量不足時(shí)的最大化輸出,但處理不當(dāng)就會(huì)導(dǎo)致整個(gè)系統(tǒng)的癱瘓,在這種情況下,一個(gè)穩(wěn)定、可靠的擁塞預(yù)判檢測(cè)機(jī)制就顯得尤為重要。常見的擁塞判定方式包括:通過隊(duì)列狀態(tài)判斷和根據(jù)QPS判斷。

以上2個(gè)指標(biāo)在系統(tǒng)的負(fù)載狀態(tài)上都有一定缺陷。對(duì)于檢索服務(wù)而言,磁盤讀寫、網(wǎng)絡(luò)I/O消耗相對(duì)比較低,基于此觀測(cè)每個(gè)線程的任務(wù)調(diào)度狀態(tài),如圖2所示,其中綠色塊表示被調(diào)度的任務(wù)。

結(jié)合圖2,正常情況下在一個(gè)時(shí)間切片下活躍任務(wù)數(shù)比較小,在CPU利用率較低的時(shí)候工作線程大部分時(shí)段空閑,在線程數(shù)換I/0的模型下任務(wù)活躍代表占用了CPU時(shí)間,因?yàn)槭褂肐/0消耗在總時(shí)間中的比例等比例放大工作線程個(gè)數(shù),因此本文使用工作線程活躍狀態(tài)表征系統(tǒng)負(fù)載。

在線程數(shù)換I/0模型下,工作線程數(shù)的設(shè)置一般會(huì)結(jié)合計(jì)算、I0的消耗去設(shè)定,如果在計(jì)算密集型服務(wù)下一般和CPU核數(shù)保持一致就可以,在I/0消耗的服務(wù)下可以根據(jù)I/0消耗占比調(diào)大工作線程數(shù),使用I/0換計(jì)算。在檢索線程模型下,設(shè)置合理的工作線程數(shù)代表了服務(wù)滿載時(shí)的計(jì)算能力,因此當(dāng)前服務(wù)CPU利用率的計(jì)算方法如下:

其中C代表線程計(jì)數(shù),分子為活躍線程計(jì)數(shù),分母為總的工作線程數(shù),P則為CPU利用率。

對(duì)于在線服務(wù)來說,為保證服務(wù)的穩(wěn)定高性能輸出、多機(jī)房互備的資源儲(chǔ)備,CPU利用率一般不希望超過40%,在這種情況下應(yīng)當(dāng)結(jié)合服務(wù)的計(jì)算、I/0消耗的比例,所能承載的最大活躍線程數(shù)也相應(yīng)地確定。

活躍線程數(shù)指標(biāo)是基于cPU利用率提出的,但磁盤、I/O出現(xiàn)性能問題的時(shí)候也同樣會(huì)在活躍線程數(shù)上有一定表現(xiàn)。一般情況下總的工作線程數(shù)需提前計(jì)算,磁盤、I/0故障時(shí)CPU利用率不會(huì)明顯變化,但性能會(huì)下降,活躍線程數(shù)也會(huì)快速膨脹,當(dāng)活躍線程超過一定限度的時(shí)候同樣可以被認(rèn)定為過載。

一般情況下系統(tǒng)容量不足的時(shí)候會(huì)快速影響工作線程數(shù),但活躍線程數(shù)的變化會(huì)有一個(gè)膨脹的過程,通過捕獲到這個(gè)過程并快速處理,在系統(tǒng)實(shí)際過載前將無法處理的流量及時(shí)丟棄,直到活躍線程數(shù)穩(wěn)定恢復(fù)到合理的范圍,同時(shí)在流量丟棄的過程中不斷地向上通報(bào)服務(wù)過載。

基于活躍線程數(shù)的過載保護(hù)機(jī)制如圖3所示,為防止活躍線程數(shù)抖動(dòng)對(duì)過載判斷造成影響,本文過載判斷設(shè)計(jì)了3個(gè)階段:過載發(fā)現(xiàn)、過載模式和過載退場(chǎng)。

LBs檢索系統(tǒng)由多個(gè)模塊組成,采用的是相似的網(wǎng)絡(luò)/線程模型,每個(gè)服務(wù)節(jié)點(diǎn)只對(duì)自己負(fù)責(zé),同時(shí)接收下游節(jié)點(diǎn)服務(wù)的狀態(tài)匯報(bào),當(dāng)前節(jié)點(diǎn)接收到下游服務(wù)的狀態(tài)匯報(bào)狀態(tài)時(shí),會(huì)根據(jù)下游節(jié)點(diǎn)是否是關(guān)鍵節(jié)點(diǎn)向上主動(dòng)匯報(bào)自己是否可用,形成一個(gè)逐級(jí)向上傳遞的匯報(bào)鏈。對(duì)于檢索服務(wù)接入的第一個(gè)服務(wù)節(jié)點(diǎn),稱之為頂層節(jié)點(diǎn)。負(fù)載調(diào)度將檢索服務(wù)與其他外部服務(wù)隔離開來。通過服務(wù)自身的過載及可用性判斷形成了完整的過載判斷,下游業(yè)務(wù)節(jié)點(diǎn)的狀態(tài)通過處理并逐級(jí)上報(bào)后最終匯總到頂層節(jié)點(diǎn)下,頂層節(jié)點(diǎn)進(jìn)一步將過載狀態(tài)匯報(bào)給負(fù)載調(diào)度服務(wù),完成檢索服務(wù)狀態(tài)的最終匯報(bào)。

2.2負(fù)載調(diào)度

在容災(zāi)系統(tǒng)的設(shè)計(jì)中,檢索服務(wù)頂層節(jié)點(diǎn)以下的所有業(yè)務(wù)模塊出現(xiàn)了影響整體容量的問題時(shí),容災(zāi)系統(tǒng)應(yīng)該都能檢測(cè)出來并給出合理的處理。在這種情況下,容災(zāi)系統(tǒng)的設(shè)計(jì)需有一個(gè)負(fù)載調(diào)度用來隔離業(yè)務(wù)系統(tǒng)和外部接入,并在檢測(cè)到頂層節(jié)點(diǎn)異常時(shí)及時(shí)觸發(fā)容災(zāi)調(diào)度。為保證容災(zāi)系統(tǒng)的穩(wěn)定工作,負(fù)載調(diào)度層需高度穩(wěn)定,對(duì)其進(jìn)行升級(jí)改造的頻率是非常低的,所以將其設(shè)計(jì)為一個(gè)獨(dú)立的服務(wù)。

ATR是負(fù)載調(diào)度服務(wù),其主要作用是對(duì)下游節(jié)點(diǎn)進(jìn)行狀態(tài)管理,并根據(jù)節(jié)點(diǎn)狀態(tài)進(jìn)行負(fù)載均衡和流量分發(fā)。通過下游項(xiàng)層節(jié)點(diǎn)的主動(dòng)匯報(bào)及ATR向下對(duì)頂層節(jié)點(diǎn)的主動(dòng)探測(cè)來獲取下游服務(wù)的狀態(tài)。它的核心功能包括4個(gè)部分:過載檢測(cè)、異常隔離、負(fù)載調(diào)度和ATR異常隔離隊(duì)列,其中ATR異常隔離隊(duì)列包括過載隊(duì)列、異常隊(duì)列、不可用隊(duì)列和離線隊(duì)列。ATR服務(wù)獨(dú)立一層完成對(duì)檢索服務(wù)的調(diào)度與穩(wěn)定性隔離,下游服務(wù)異常時(shí)能夠非常靈敏地將流量遷移到容災(zāi)環(huán)境中。

2.3容災(zāi)環(huán)境

前節(jié)中主要介紹了過載保護(hù)和負(fù)載調(diào)度,負(fù)載調(diào)度會(huì)將檢索服務(wù)無法處理的流量引導(dǎo)到容災(zāi)環(huán)境中。容災(zāi)環(huán)境包括容災(zāi)cache和延遲環(huán)境。

在LBS檢索場(chǎng)景下,結(jié)果狀態(tài)由于和位置相關(guān),結(jié)果級(jí)cache的命中率是極低的,由于容災(zāi)本身就是一種降級(jí)手段,在實(shí)際簽名設(shè)計(jì)中考慮了位置的泛化,保留了核心請(qǐng)求參數(shù)對(duì)用戶query作簽名訓(xùn)練容災(zāi)cache,以泛需求檢索[美食]為例,用戶可能在相聚幾十米的2個(gè)地方搜美食,結(jié)果是不一樣的。在容災(zāi)降級(jí)場(chǎng)景下,其檢索結(jié)果可以一樣,對(duì)用戶不會(huì)有明顯的感知,本文采用加權(quán)投票的方式確定在一個(gè)geo區(qū)塊內(nèi)的cache結(jié)果選擇,如圖4所示。

對(duì)于檢索服務(wù)而言,請(qǐng)求query分布有高中低頻之分,高中頻query連續(xù)2天都會(huì)有一定概率的重復(fù)出現(xiàn),但一些低頻query可能1年也出現(xiàn)不了幾次,而容災(zāi)cache是基于歷史日志訓(xùn)練的,對(duì)于命中率不能得到絕對(duì)的保證,在實(shí)際測(cè)試中,LBS檢索下的cache命中率大概78%。

為保證長(zhǎng)尾query的召回,在容災(zāi)環(huán)境中增加了延遲環(huán)境,所謂延遲環(huán)境是2天以前的線上環(huán)境的鏡像,其數(shù)據(jù)和服務(wù)都是靜止的,且經(jīng)歷過了至少2天線上流量的驗(yàn)證,可以認(rèn)為是穩(wěn)定的,長(zhǎng)尾流量會(huì)被容災(zāi)環(huán)境進(jìn)一步導(dǎo)到延遲環(huán)境做進(jìn)一步的召回。

這樣,通過容災(zāi)cache和延遲環(huán)境的相互配合提供了100%的檢索容災(zāi)服務(wù)。為防止容災(zāi)服務(wù)對(duì)新版本客戶端的影響,每一次發(fā)版測(cè)試階段都會(huì)例行使用新版本客戶端對(duì)容災(zāi)環(huán)境進(jìn)行一次逆向驗(yàn)證。這種100%容災(zāi)是相對(duì)的,是建立在假定容災(zāi)環(huán)境和線上環(huán)境不會(huì)同時(shí)故障的情況下的,所以容災(zāi)環(huán)境的穩(wěn)定性是必須實(shí)時(shí)保障的。

2.4分級(jí)發(fā)布

分級(jí)發(fā)布包括服務(wù)變更和數(shù)據(jù)變更的分級(jí)發(fā)布2種形式。通過分級(jí)發(fā)布,可以有效地控制因發(fā)布帶來的穩(wěn)定性、效果風(fēng)險(xiǎn),通過只影響少量用戶的快速驗(yàn)證,規(guī)避更大的影響,一旦發(fā)布出現(xiàn)問題就可以快速回滾。

發(fā)布階段對(duì)穩(wěn)定性的影響主要包括響應(yīng)時(shí)間變差、結(jié)果不穩(wěn)定、服務(wù)宕機(jī)或服務(wù)無法啟動(dòng)等,對(duì)效果的影響主要是檢索結(jié)果質(zhì)量變差。服務(wù)無法正常啟動(dòng)這類問題比較容易規(guī)避,而大部分問題往往都是在提供服務(wù)之后觸發(fā)的。在正常提供服務(wù)階段,處理流程命中了臟數(shù)據(jù)或局部分支導(dǎo)致內(nèi)存被寫亂都可能導(dǎo)致比較嚴(yán)重的穩(wěn)定性問題,基于此,分級(jí)發(fā)布必然需要伴生在線測(cè)試來保證分級(jí)的效果。在線測(cè)試語料的選擇要盡可能全面地覆蓋業(yè)務(wù)場(chǎng)景、邏輯分支。另外,在線測(cè)試觸發(fā)的時(shí)間點(diǎn)的選擇也要盡可能地保證程序&數(shù)據(jù)分支己大部分被預(yù)熱。

為防止在一些極端的場(chǎng)景下服務(wù)全部崩潰導(dǎo)致所有服務(wù)完全不可用,在線測(cè)試的時(shí)間點(diǎn)需要盡可能選擇大于一次崩潰自動(dòng)拉起的時(shí)間周期,這樣即便有大面積崩潰也始終能保證大部分服務(wù)還可以使用,提供盡力而為的服務(wù)。

3結(jié)語

本文創(chuàng)造性地使用活躍線程數(shù)判定服務(wù)的過載狀態(tài),大大簡(jiǎn)化了過載判斷的復(fù)雜度,減少了額外的風(fēng)險(xiǎn)。通過過載保護(hù)/負(fù)載調(diào)度/容災(zāi)環(huán)境構(gòu)建了一個(gè)穩(wěn)健的在線容災(zāi)系統(tǒng),創(chuàng)新性地對(duì)容災(zāi)作了一個(gè)系統(tǒng)級(jí)的抽象,在其他的復(fù)雜計(jì)算的業(yè)務(wù)場(chǎng)景下也具有比較好的借鑒價(jià)值。

通過對(duì)復(fù)雜的業(yè)務(wù)線如檢索提供容災(zāi)系統(tǒng)是很有意義的,在容災(zāi)系統(tǒng)的保護(hù)下對(duì)線上變更能更加從容,能比較有效地規(guī)避流量的突然增加、服務(wù)崩潰、服務(wù)性能突然變差對(duì)用戶的影響。容災(zāi)系統(tǒng)上線后,檢索服務(wù)還沒有出現(xiàn)過因服務(wù)穩(wěn)定性導(dǎo)致的服務(wù)拒絕。服務(wù)宕機(jī)導(dǎo)致服務(wù)大面積不可用這種情況的觸發(fā)概率本身就很低,1年最多也就兩三次,但一旦發(fā)生對(duì)用戶的影響就會(huì)是極端惡劣的,一旦觸發(fā)它的作用是巨大的,為此在日常的維護(hù)中需要絕對(duì)保證容災(zāi)環(huán)境的實(shí)時(shí)可用,避免容災(zāi)環(huán)境和線上服務(wù)同時(shí)不可用的慘況。

主站蜘蛛池模板: 成人免费午间影院在线观看| 亚洲男人的天堂在线| 波多野结衣在线se| 自拍偷拍欧美| 久久精品91麻豆| 午夜精品区| 中文字幕精品一区二区三区视频| 日韩毛片免费视频| 欧美.成人.综合在线| 日韩欧美成人高清在线观看| 色国产视频| 日韩a在线观看免费观看| 超碰91免费人妻| a网站在线观看| 国产人妖视频一区在线观看| 免费国产好深啊好涨好硬视频| 欧美色综合网站| 一级毛片在线直接观看| 欧美色伊人| 国产一区在线观看无码| 国产亚洲欧美在线中文bt天堂| 久久一色本道亚洲| 欧美国产日本高清不卡| 免费人成在线观看视频色| av尤物免费在线观看| 欧美区日韩区| 国产成在线观看免费视频| 色网站在线免费观看| 2021精品国产自在现线看| 波多野结衣中文字幕一区二区| 国产主播在线一区| 香蕉视频国产精品人| 一本色道久久88综合日韩精品| 9丨情侣偷在线精品国产| 亚洲区欧美区| 精品无码国产一区二区三区AV| 日韩高清一区 | 国产视频一区二区在线观看| 99久久99这里只有免费的精品| 91精品网站| 国产成人1024精品下载| 欧美日韩一区二区在线免费观看| 99视频国产精品| 激情影院内射美女| 色综合天天综合中文网| 国产精品美女网站| 亚洲第一色网站| 国产美女久久久久不卡| 日本亚洲国产一区二区三区| a毛片在线播放| 国产视频a| 久久窝窝国产精品午夜看片| 狠狠亚洲五月天| 国产精品美人久久久久久AV| 婷婷色在线视频| 久久精品国产亚洲麻豆| 国产香蕉97碰碰视频VA碰碰看| 久久精品国产亚洲麻豆| 久久国产精品麻豆系列| 国产精品亚洲一区二区三区在线观看| 欧美国产综合色视频| 性视频久久| 欧美日韩高清在线| 强奷白丝美女在线观看| 九九热视频在线免费观看| 欧美一级专区免费大片| 国产aaaaa一级毛片| www.91在线播放| 国产精品微拍| 精品国产成人高清在线| 亚洲精品少妇熟女| 国产精品成人一区二区不卡 | 扒开粉嫩的小缝隙喷白浆视频| 人人看人人鲁狠狠高清| 国产真实乱了在线播放| 亚洲一级毛片免费观看| 亚洲欧州色色免费AV| 伊人久久久久久久| 日本午夜精品一本在线观看| 亚洲αv毛片| 91最新精品视频发布页| 久久无码av三级|