日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

流水單據(jù)型業(yè)務(wù)場景多活實踐

多活容災(zāi)MSHA(Multi-Site High Availability)是在阿?巴巴電商業(yè)務(wù)環(huán)境演進出的多活容災(zāi)架構(gòu)解決?案。本文通過一個電商業(yè)務(wù)下單鏈路案例,介紹典型的流水單據(jù)型業(yè)務(wù)場景,如何基于多活容災(zāi)解決方案(AHAS-MSHA)幫助業(yè)務(wù)實現(xiàn)多活容災(zāi)架構(gòu)。

背景信息

本文示例應(yīng)用包含以下模塊:

  • frontend:入口Web應(yīng)用。負責(zé)和用戶交互。

  • cartservice:購物車應(yīng)用。記錄用戶的購物車數(shù)據(jù),使用自建的Redis。

  • productservice:商品應(yīng)用。提供商品、庫存服務(wù),使用RDS MySQL。

  • checkoutservice:下單應(yīng)用。將購物車中的商品生成購買訂單,使用RDS MySQL。

技術(shù)棧:

  • SpringBoot。

  • RPC框架:SpringCloud,注冊中心使用自建的Eureka。

Demo體驗地址:

多活容災(zāi)控制臺:

  1. 登錄AHAS控制臺

  2. 在控制臺左側(cè)導(dǎo)航欄選擇多活容災(zāi)

  3. 在頂部菜單欄,命名空間選擇官方示例命名空間

案例背景:一次故障的發(fā)生

例如本示例的電商業(yè)務(wù),包括導(dǎo)購、購物車、交易等業(yè)務(wù)場景。但在電商業(yè)務(wù)初期,很多互聯(lián)網(wǎng)企業(yè)都沒有考慮容災(zāi)問題,只在單地域進行了部署,部署的電商應(yīng)用架構(gòu)1.0如下圖所示,只在杭州單元部署了相關(guān)業(yè)務(wù)。

電商應(yīng)用架構(gòu)1.0

讀多寫少型業(yè)務(wù)場景多活實踐中,已經(jīng)將導(dǎo)購鏈路進行了異地多讀改造,而該業(yè)務(wù)后續(xù)在一次大促期間,遭遇了一次訂單應(yīng)用大面積故障,導(dǎo)致大促期間下單業(yè)務(wù)長時間無法使用,于是下單業(yè)務(wù)的容災(zāi)建設(shè)也提上了議程。下單業(yè)務(wù)是典型的流水單據(jù)型業(yè)務(wù)場景,相比導(dǎo)購,是更為復(fù)雜的讀寫業(yè)務(wù),結(jié)合業(yè)務(wù)場景和業(yè)務(wù)容災(zāi)訴求,異地多活是適合此業(yè)務(wù)的容災(zāi)建設(shè)方案。

異地多活容災(zāi)架構(gòu)改造

基于MSHA多活容災(zāi)解決方案,可以快速的幫助業(yè)務(wù)進行異地多活容災(zāi)建設(shè)。

說明

下單鏈路強依賴購物車應(yīng)用,完整的多活容災(zāi)建設(shè),后續(xù)還應(yīng)將購物車應(yīng)用也改造為異地多活。

多活改造和MSHA接入包括以下方面:

  • 改造范圍:下單應(yīng)用和訂單數(shù)據(jù)庫進行兩地域部署。

  • MSHA接入:將下單鏈路的應(yīng)用安裝上Agent,從而無侵入的實現(xiàn)SpringCloud RPC跨單元路由功能和數(shù)據(jù)防臟寫功能。

  • 管控配置:進入MSHA控制臺進行各層多活資源的配置(接入層域名、URI、SLB、數(shù)據(jù)層數(shù)據(jù)同步等)。

改造后的應(yīng)用架構(gòu)如下圖所示。

異地多活容災(zāi)架構(gòu).png

復(fù)現(xiàn)故障

改造完成容災(zāi)架構(gòu)后,還需驗證容災(zāi)能力是否符合預(yù)期,接下來將歷史故障進行復(fù)現(xiàn),通過制造真實的故障來驗證容災(zāi)恢復(fù)能力。

  1. 演練準(zhǔn)備。

    1. 登錄AHAS控制臺

    2. 在控制臺左側(cè)導(dǎo)航欄選擇多活容災(zāi)

    3. 在左側(cè)導(dǎo)航欄選擇監(jiān)控大盤,在頂部菜單欄,選擇命名空間官方示例命名空間

    4. 異地雙活區(qū)域,查看業(yè)務(wù)穩(wěn)態(tài)監(jiān)控指標(biāo)。

      說明

      基于MSHA流量監(jiān)控或其他監(jiān)控能力,確定業(yè)務(wù)穩(wěn)態(tài)的監(jiān)控指標(biāo),以便在故障發(fā)生時判斷故障影響面以及在故障恢復(fù)后判斷業(yè)務(wù)的實際恢復(fù)情況。

      演練預(yù)期如下:

      • 下單鏈路對訂單應(yīng)用是強依賴,強依賴故障會影響業(yè)務(wù)不可用。

      • 故障爆炸半徑控制在單元內(nèi)。

    5. 創(chuàng)建故障演練。

      創(chuàng)建北京單元下單應(yīng)用故障的演練,具體操作,請參見創(chuàng)建演練

  2. 故障注入。

    1. 在多活容災(zāi)的監(jiān)控大盤頁面異地雙活區(qū)域,查看故障演練前配置的路由規(guī)則。

      本示例中UserID為0~6652之間的用戶會路由到杭州中心單元,UserID為6653~9999之間的用戶會路由到北京單元。

      路由規(guī)則2.png

      示例的MSHA商城下單應(yīng)用鏈路如下圖所示,當(dāng)UserID為7000的用戶路由到北京單元。

      查看鏈路3.png

    2. 對北京單元的下單應(yīng)用注入故障。

      1. AHAS控制臺的左側(cè)導(dǎo)航欄選擇故障演練 > 我的空間

      2. 我的空間單擊演練準(zhǔn)備中創(chuàng)建的演練,然后單擊演練

      3. 開始執(zhí)行演練對話框中單擊確認故障注入2.png

        若故障注入成功,UserID為7000的用戶路由到的北京單元會受到影響,下單頁訪問異常,符合預(yù)期。

        訪問失敗2.png

      4. 可選:驗證爆炸半徑。

        驗證爆炸半徑是否控制在故障單元內(nèi):

        • 預(yù)期:UserID為2000的用戶路由到杭州單元,不受北京單元故障的影響。

        • 結(jié)果:下單正常,符合預(yù)期。

切流恢復(fù)

驗證故障場景下的容災(zāi)恢復(fù)能力。在北京單元發(fā)生故障的情況下,可以使用MSHA切流功能將受影響的用戶流量切換到另外的單元,進行快速業(yè)務(wù)恢復(fù)。

說明

這里區(qū)別于傳統(tǒng)的解決思路,不是去排查、處理和修復(fù)故障,而是立即使用切流進行恢復(fù),將業(yè)務(wù)恢復(fù)和故障恢復(fù)解耦。

容災(zāi)切換預(yù)期:將UserID為7000的用戶切流到杭州單元,切流后該用戶將路由到杭州單元,不受北京單元故障的影響。

  1. 登錄AHAS控制臺

  2. 在控制臺左側(cè)導(dǎo)航欄中單擊多活容災(zāi)
  3. 在左側(cè)導(dǎo)航欄選擇基礎(chǔ)配置 > 命名空間,在頂部菜單欄選擇官方示例命名空間

  4. 在多活容災(zāi)的左側(cè)導(dǎo)航欄選擇切流 > 異地雙活切流

  5. 異地雙活切流頁面,單擊切流

  6. 切流詳情頁面的規(guī)則調(diào)整區(qū)域,滑動杭州中心單元的滑塊,使得UserID 7000在杭州中心單元的規(guī)則內(nèi)。

  7. 單擊生成預(yù)覽,然后在生成區(qū)域單擊執(zhí)行預(yù)檢查,在切流檢查區(qū)域,單擊確認

  8. 切流確認對話框中,單擊確定

    切流任務(wù)頁面的當(dāng)前狀態(tài)顯示切流完成,表示切流已成功。切流2.png

  9. 重新在MSHA商城下訂單。

    MSHA商城下單正常,符合預(yù)期。

    下單成功.png

    通過查看下單請求的實際調(diào)用鏈路,UserID為7000的用戶已路由到杭州單元,不受北京單元故障的影響,符合預(yù)期。

    查看鏈路4.png

功能演示

故障注入和切流恢復(fù)的功能演示如下。

后續(xù)步驟

您還需要進行以下操作:

  • 終止注入故障,具體操作,請參見停止演練

  • 反饋演練結(jié)果,記錄演練識別到的風(fēng)險問題,具體操作,請參見反饋演練結(jié)果

  • 回切流量,將MSHA的路由規(guī)則恢復(fù)到演練前的狀態(tài),具體操作,請參見異地雙活切流

  • 查看穩(wěn)態(tài)業(yè)務(wù)指標(biāo)已恢復(fù),具體操作,請參見本文復(fù)現(xiàn)故障

相關(guān)文檔