要實現(xiàn)升級不斷服,通常需要解決如下問題:
創(chuàng)新互聯(lián)公司2013年至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都做網(wǎng)站、網(wǎng)站建設(shè)網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元涼山州做網(wǎng)站,已為上家服務(wù),為涼山州各地企業(yè)和個人服務(wù),聯(lián)系電話:18982081108
停止服務(wù)的時候,可能引起業(yè)務(wù)中斷。在停止服務(wù)的過程中,可能服務(wù)正在處理請求,新的請求可能持續(xù)的發(fā)送到該服務(wù)。
在微服務(wù)架構(gòu)下,一般都會通過注冊中心進行服務(wù)發(fā)現(xiàn),客戶端會緩存實例地址。停止服務(wù)的時候,使用者可能無法及時感知實例下線,并繼續(xù)使用錯誤的實例進行訪問,導(dǎo)致失敗。
新服務(wù)啟動起來后,會存在灰度狀態(tài),出現(xiàn)多個版本并存,如果新服務(wù)新增加了接口,新升級的服務(wù)需要正確的將流量發(fā)送到包含新接口的服務(wù)。
成本:實現(xiàn)升級不斷服,可以先準(zhǔn)備大量的備份機器,將新服務(wù)啟動起來。然后對用戶的請求進行引流,待老服務(wù)沒有流量后,停止老服務(wù)。這需要運維人員準(zhǔn)備額外的集群資源并開發(fā)強大的運維監(jiān)控系統(tǒng)來完成。
使用CSE框架,可以以極低的成本,不借助運維工具,就能夠輕松的實現(xiàn)升級不斷服
在討論不斷服的時候,需要先設(shè)計一個測試評估模型。為了簡單,采用下面測試場景來進行評估。調(diào)用者通過網(wǎng)關(guān)來訪問應(yīng)用實例1和應(yīng)用實例2,現(xiàn)在要對應(yīng)用實例進行升級。升級的過程中,調(diào)用者會啟動N個線程,以Mtps的流量來請求。我們可以以整個升級過程出現(xiàn)的失敗次數(shù)來評估系統(tǒng)對于不斷服升級的支持好壞。為了節(jié)省資源,我們采用先停止1.0版本的實例1,然后部署2.0版本的實例1;再停止1.0版本的實例2,最后部署2.0版本的實例2。另外,我們還需要構(gòu)造服務(wù)端處理時延T,模擬請求正在處理的情況。
在這個過程中,使用CSE測試的數(shù)據(jù)如下:
調(diào)用者線程數(shù)N 調(diào)用者流量M 處理時延T 失敗次數(shù)
10 20tps 無 0
10 80tps 無 0
10 600tps 無 0
10 80tps 100ms 0
實現(xiàn)不斷服的核心機制包括如下幾個:
優(yōu)雅停機:服務(wù)停止的時候,需要等待請求完成,并拒絕新請求;
重試:客戶端對于網(wǎng)絡(luò)連接錯誤,以及拒絕請求錯誤,需要選擇新服務(wù)器進行重試。
隔離:對于失敗超過一定次數(shù)的服務(wù)實例,進行隔離。
在上面的測試數(shù)據(jù)中,重試策略配置為:
servicecomb:
loadbalance:
retryEnabled: true
retryOnNext: 1
retryOnSame: 0
隔離策略配置為:
servicecomb:
loadbalance:
myservice:
isolation:
enabled: true
enableRequestThreshold: 5
singleTestTime: 10000
continuousFailureThreshold: 2
測試過程中,在停止1.0版本實例2的時候,需要確保2.0版本實例1已經(jīng)正確處理請求,否則可能出現(xiàn)無實例可用,出現(xiàn)升級中斷。
上面描述了僅僅借助SDK就實現(xiàn)升級不斷服。通過配合CSE的灰度發(fā)布、部署工具等,可以實現(xiàn)更加可靠的升級不斷服和更好的體驗。
更多精彩文章,盡在微服務(wù)蜂巢公眾號,快來關(guān)注我們吧~
文章標(biāo)題:0代碼實現(xiàn)滾動升級不斷服
URL網(wǎng)址:http://chinadenli.net/article42/pijohc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護、用戶體驗、App開發(fā)、ChatGPT、微信公眾號、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)