如何理解分布式結(jié)構(gòu)下,服務(wù)部署發(fā)布

這篇文章主要介紹“如何理解分布式結(jié)構(gòu)下,服務(wù)部署發(fā)布”,在日常操作中,相信很多人在如何理解分布式結(jié)構(gòu)下,服務(wù)部署發(fā)布問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何理解分布式結(jié)構(gòu)下,服務(wù)部署發(fā)布”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

游仙網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站設(shè)計(jì)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)公司成立與2013年到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司

一、服務(wù)發(fā)布簡介

分布式系統(tǒng)架構(gòu)下,服務(wù)發(fā)布是一件很麻煩的事情,特別是在構(gòu)建自動發(fā)布流程和灰度測試的策略兩個核心方面。通常情況下如果不涉及數(shù)據(jù)層面的灰度流程,服務(wù)可以灰度上線,或者滾動上線,這兩種方式很常用;如果涉及到數(shù)據(jù)灰度,則可能需要中間服務(wù)做不同版本數(shù)據(jù)之間追平,或者停機(jī)維護(hù)一次性處理好數(shù)據(jù)和上線問題,不過后面這種方式風(fēng)險較大。

二、藍(lán)綠部署

如何理解分布式結(jié)構(gòu)下,服務(wù)部署發(fā)布

新版本上線的時候,并不停掉老版本,新舊兩個版本同時運(yùn)行,通常還會在負(fù)載均衡的策略上傾向于舊版本服務(wù)處理請求,這樣新版本就有一個執(zhí)行的觀察期過渡期,等到新版本平穩(wěn)運(yùn)行一段時間后,再把請求都發(fā)到新版服務(wù)上,舊版本服務(wù)完成下線。這種方式在分布式架構(gòu)下很少使用,對服務(wù)器要求過高。

三、滾動發(fā)布

如何理解分布式結(jié)構(gòu)下,服務(wù)部署發(fā)布

滾動發(fā)布可以避免藍(lán)綠部署的服務(wù)器資源占用問,首先發(fā)布一臺新版本服務(wù),然后停掉一臺老版本服務(wù),新版服務(wù)經(jīng)過觀察之后,再逐步替換掉所有老版本的服務(wù),這樣服務(wù)的環(huán)境變動比較頻繁,相對不穩(wěn)定。

四、灰度發(fā)布

上述兩種方式在普通業(yè)務(wù)場景下都還算好操作,分布式系統(tǒng)下的灰度發(fā)布復(fù)雜程序相對高很多,基礎(chǔ)流程如下:

如何理解分布式結(jié)構(gòu)下,服務(wù)部署發(fā)布

新版本上線,可能涉及分布式下多個灰度服務(wù),因此在服務(wù)在整個鏈路上分發(fā)時,都要判斷下個請求是路由到正常服務(wù)還是灰度服務(wù),還要對灰度服務(wù)做請求的權(quán)重控制,不能讓灰度服務(wù)處理大量的請求。

實(shí)際策略:在實(shí)際的分布式系統(tǒng)灰度發(fā)布流程,通常會采用如下一個策略:

  • 配置一個灰度是否開啟的標(biāo)識;

  • 配置一批灰度賬戶,通常內(nèi)部人員;

  • 配置灰度服務(wù)版本標(biāo)識;

  • 請求在鏈路執(zhí)行時,判斷灰度是否開啟;

  • 判斷當(dāng)前用戶身份是否是灰度測試賬號;

  • 獲取當(dāng)前可以請求的服務(wù)列表;

  • 根據(jù)灰度服務(wù)版本選擇請求的具體服務(wù);

這個流程非常的復(fù)雜,需要很多自定義的策略,還要熟悉分布式框架的底層API原理,要二次重寫來適配灰度策略,設(shè)計(jì)重寫原生API還容易觸發(fā)一些驚喜問題。

五、數(shù)據(jù)庫灰度

如果說最難處理的灰度模式是什么,就是數(shù)據(jù)庫的版本灰度問題,通常業(yè)務(wù)對數(shù)據(jù)庫改造升級,實(shí)際都是通過停機(jī)維護(hù)來處理的,可能很多開發(fā)都經(jīng)歷過,發(fā)布停服公告,然后在指定時間內(nèi)把數(shù)據(jù)全部追平或者二次搬運(yùn),再重新提供服務(wù)。但是總有些業(yè)務(wù)場景是不能停機(jī)維護(hù)的,處理灰度數(shù)據(jù)的基本策略如下:

如何理解分布式結(jié)構(gòu)下,服務(wù)部署發(fā)布

該模式中,除了正常的灰度流程之外,需要在灰度數(shù)據(jù)庫和正常數(shù)據(jù)中間提供一個數(shù)據(jù)調(diào)配服務(wù),用來解決如下問題:灰度數(shù)據(jù)庫缺失數(shù)據(jù),需要臨時從正常庫拉取,灰度版本失敗,新數(shù)據(jù)需要重新整合寫入原本正常庫;灰度版本成功,舊版數(shù)據(jù)遷移等;最終保證數(shù)據(jù)的平穩(wěn)升級。

六、源代碼地址

GitHub·地址
https://github.com/cicadasmile/data-manage-parent
GitEE·地址
https://gitee.com/cicadasmile/data-manage-parent

到此,關(guān)于“如何理解分布式結(jié)構(gòu)下,服務(wù)部署發(fā)布”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

網(wǎng)站欄目:如何理解分布式結(jié)構(gòu)下,服務(wù)部署發(fā)布
標(biāo)題鏈接:http://muchs.cn/article10/ppjhgo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、關(guān)鍵詞優(yōu)化移動網(wǎng)站建設(shè)、ChatGPT虛擬主機(jī)、電子商務(wù)

廣告

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

營銷型網(wǎng)站建設(shè)