日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

揭秘 | 大流量场景下发布如『丝般顺滑』背后的原因

發(fā)布時間:2024/9/3 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 揭秘 | 大流量场景下发布如『丝般顺滑』背后的原因 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
簡介:很多互聯網公司半夜發(fā)布,只為減小用戶影響,出了問題場面可控。MSE服務治理無損下線,保障了發(fā)布期間的流量,讓您擺脫半夜發(fā)布的窘境。

為什么很多互聯網公司不敢在白天發(fā)布,都選擇在半夜發(fā)布。要是能擺脫半夜發(fā)布的窘境,它不香嗎?選擇在半夜發(fā)布無非是為了減少對用戶的影響,出了問題影響面可控。

那我們就來談談,發(fā)布會有哪些問題。

  • 若您的應用沒有上下線的問題,您的任何應用在發(fā)布的過程中會造成短暫的服務不可用,短時間內業(yè)務監(jiān)控會出現大量 io 異常報錯,對業(yè)務的連續(xù)性造成困擾。
  • 發(fā)布是整個功能更新到線上的最后一個環(huán)節(jié),一些研發(fā)過程中累計的問題,在最后發(fā)布環(huán)節(jié)才會觸發(fā)。如果此時是白天大流量的場景,極小的問題由于大流量的因素都會被快速放大,影響面難以控制。
  • 發(fā)布若涉及到多個應用,如何進行合理地發(fā)布并且不會有版本問題導致流量受損。

所有發(fā)布的問題大致總結為以上三條,接下來我會分幾篇文章詳細講一下為什么會有這些問題,已經我們如何解決這些問題。也希望大家都可以早點下班,擺脫半夜發(fā)布的窘境,抽出時間多陪陪家人。

本文將圍繞實例上下線場景,講述發(fā)布過程中的問題。

大流量下的應用發(fā)布現狀

應用 Demo

Demo 以 Spring Cloud 為例,我們準備了如下demo。流量是阿里云性能測試服務PTS發(fā)起,通過開源的Zuul網關流入我們的系統(tǒng)

PTS使用文檔:https://pts.console.aliyun.com/

其中其服務調用鏈路如下圖所示:

圖中流量從 Netflix Zuul 對應的 Ingress 進來,會調用 SC-A 應用對應的服務,SC-A 應用內部調用 SC-B 應用的服務,SC-B 應用內部調用 SC-C 應用的服務。

Helm 部署 Demo

helm install mse/mse-samples
Demo為純開源Spring Cloud架構,項目地址:

https://github.com/aliyun/alibabacloud-microservice-demo/tree/master/microservice-doc-demo/traffic-management

部署完畢后,阿里云容器服務上的工作負載情況如下:

我們通過 while true; do curl http://{ip:port}/A/a;echo;done shell 命令不斷地去訪問 Spring Cloud 服務,我們可以看到我們 demo 的作用僅僅是打印當前服務的ip,我們可以看到我們 demo 的作用僅僅是打印當前服務的 ip,我們可以看到整體調用的鏈路。

while true; do curl http://{ip:port}/A/a;echo;done A[10.0.0.81] -> B[10.0.0.82] -> C[10.0.0.68] A[10.0.0.179] -> B[10.0.0.82] -> C[10.0.0.50] A[10.0.0.80] -> B[10.0.0.82] -> C[10.0.0.68] A[10.0.0.49] -> B[10.0.0.82] -> C[10.0.0.50] A[10.0.0.81] -> B[10.0.0.175] -> C[10.0.0.68] A[10.0.0.179] -> B[10.0.0.175] -> C[10.0.0.50] A[10.0.0.80] -> B[10.0.0.175] -> C[10.0.0.68] A[10.0.0.49] -> B[10.0.0.175] -> C[10.0.0.50] A[10.0.0.81] -> B[10.0.0.82] -> C[10.0.0.68] ...

配置壓測 500 qps,并在壓測的過程中分別進行應用縮容、擴容以及發(fā)布,并觀察壓測的情況。

大流量下開源應用的表現

縮容

在 500qps 壓測的情況下,將 sc-a 應用從4個pod縮容到1個pod,壓測時長3分鐘。

  • 觀察 K8s 的事件,我們看到在17:35:21時,進行應用縮容。
  • 查看性能壓測報告,我們觀察到從 17:35:21 開始出錯,17:35:36 停止報錯,其中報錯時長持續(xù)15秒,總共出現469個異常。
  • 其中詳細過程報告如下。
  • 擴容

    再來看看壓測態(tài)下,應用擴容的表現,我們在 500qps 壓測的情況下,將 sc-a 應用從1個pod擴容到4個pod,壓測時長3分鐘

  • 觀察K8s的事件,我們看到在 17:47:03 時,進行應用擴容。
  • 查看性能壓測報告,我們觀察到從 17:47:12 開始出錯,17:47:19 停止報錯,其中報錯時長持續(xù)7秒,總共出現257個異常。
  • 其中詳細過程報告如下。
  • 發(fā)布

    在 500qps 壓測的情況下,將 sc-a 應用(4個pod)進行發(fā)布,壓測時長3分鐘。

  • 觀察K8s的事件,我們看到在 17:53:42 時,進行應用發(fā)布。
  • 查看性能壓測報告,我們觀察到從 17:53:42 開始出錯,17:54:24 停止報錯,其中報錯時長持續(xù)42秒,總共出現1萬多個異常。
  • 其中詳細過程報告如下。
  • 現狀與思考

    可以看到大流量下應用發(fā)布的問題,刻不容緩。隨著云原生架構的發(fā)展,彈性伸縮、滾動升級、分批發(fā)布等云原生能力讓用戶獲得了資源、成本、穩(wěn)定性的最優(yōu)解,正是因為其彈性等特點,如果應用存在上線、下線等問題,那么這些問題將會在云原生架構下被放大。

    想象一下如果每次擴容、縮容、發(fā)布都有這些不必要的錯誤,業(yè)務的連續(xù)性、產品的用戶體驗均會收到巨大的打擊,如何在服務更新部署過程中保證業(yè)務無感知,是開發(fā)者必須要解決的問題,即從應用停止到重新運行,是不能影響正常業(yè)務請求的。

    減少不必要的API錯誤是最好的客戶體驗。

    這是一個非常痛的點,這時候有個人告訴你,我知道怎么搞定,我有著豐富的經驗,知道怎么解決,你肯定很開心。

    然后花高薪請進來了,確實不錯,各種架構圖、框架原理,框架修改點都非常清晰而且功能確實完美。最后評估對當前系統(tǒng)的修改成本,需要搭建三套中間件服務端,增加 4 個中間件依賴,修改幾萬行代碼和配置。

    “打擾了,還是業(yè)務重要,產品經理給的需求還沒完成呢,剛剛說的場景也沒那么痛苦,不就幾個小問題嘛,真的沒事。”

    這時候 MSE 告訴你,MSE 的微服務解決方案,不需要做任何的代碼和配置的修改,就能完美地解決上下線中的問題。您只需將您的應用接入MSE服務治理,您就能享受到 MSE 的無損下線的能力。

    你,不心動嗎?

    是的,你沒看錯,只要你的應用是基于 Spring Cloud 或 Dubbo 最近五年內的版本開發(fā),就能直接使用完整的 MSE 微服務治理能力,不需要修改任何代碼和配置。

    具備無損下線的應用發(fā)布

    如何接入 MSE 無損下線

    您只需將您的應用接入 MSE 服務治理,即可具備微服務治理的無損下線能力。

    接入后的表現

    我們看一下接入MSE服務治理后的擴縮容以及發(fā)布的表現,同樣是原先的

    縮容

    在 500qps 壓測的情況下,將 sc-a 應用從4個pod縮容到1個pod,壓測時長3分鐘

  • 觀察K8s的事件,我們看到在17:41:06時,進行應用縮容。
  • 查看性能壓測報告,我們觀察到流量全程無損,其中并發(fā)穩(wěn)定在30左右。
  • 其中詳細過程報告如下,可以看到應用縮容對業(yè)務來說完全無感知。
  • 擴容

    在 500qps 壓測的情況下,將 sc-a 應用從1個pod擴容到4個pod,壓測時長3分鐘。

  • 觀察K8s的事件,我們看到在20:00:19時,進行應用擴容。
  • 查看性能壓測報告,無報錯。
  • 其中詳細過程報告如下,可以看到應用縮容對業(yè)務來說無報錯,但是在20:01:07開始有并發(fā)存在凸起,后續(xù)會上線無損上線功能,將完善該邏輯,使凸起平滑。
  • 發(fā)布

    在500qps壓測的情況下,將 sc-a 應用(4個pod)進行發(fā)布,壓測時長3分鐘。

  • 觀察K8s的事件,我們看到在 20:08:55 時,進行應用發(fā)布。
  • 查看性能壓測報告,我們觀察流量全程無報錯。
  • 其中詳細過程報告如下,可以看到應用縮容對業(yè)務來說無報錯,但是在20:09:39、20:10:27 有并發(fā)存在輕微凸起,后續(xù)會上線無損上線功能,將完善該邏輯,使凸起平滑。
  • 對比應用在接入 MSE 服務治理前后發(fā)布過程中的表現,我們可以看到 MSE 完全解決了發(fā)布、擴縮容過程中流量報錯的痛點,使業(yè)務更加穩(wěn)定,產品體驗更加絲滑。同時接入 MSE 服務治理后無需修改一行代碼即可享受到無損下線能力。

    總結

    本文介紹了微服務治理下無損下線的能力,保障了發(fā)布期間的流量,讓您擺脫半夜發(fā)布的窘境,您的應用只需接入MSE服務治理,無需任何操作即可享受到無損下線的能力。除了MSE(微服務引擎),無損能力還被EDAS、SAE等云產品集成,同時無損下線已經在阿里云核心業(yè)務大規(guī)模落地,助力保障云上業(yè)務穩(wěn)定性,讓您業(yè)務永遠在線。

    后面章節(jié)會詳細揭秘為何只需接入MSE服務治理,您的應用就能白天大流量下發(fā)布依然如絲般順滑的黑魔法,敬請期待

    后面還會圍繞白天大流量下發(fā)布絲滑的場景繼續(xù)談,該話題預計會有三到四篇文章,敬請期待!

    不只是服務治理

    MSE 微服務引擎不僅僅具備微服務治理能力,我們還提供托管開源注冊中心、配置中心、開源網關等服務。通過托管的Baas化產品,將我們阿里云十多年微服務最佳實踐能力通過云產品方式輸出,助力保障云上業(yè)務穩(wěn)定性,讓您業(yè)務永遠在線。

    微服務引擎用戶交流群

    如果您在微服務引擎MSE使用過程中有任何疑問,歡迎您搜索釘釘群號 23371469 或者使用釘釘掃描如下二維碼加入釘釘群進行反饋。

    原文鏈接:https://developer.aliyun.com/article/780231?

    版權聲明:本文內容由阿里云實名注冊用戶自發(fā)貢獻,版權歸原作者所有,阿里云開發(fā)者社區(qū)不擁有其著作權,亦不承擔相應法律責任。具體規(guī)則請查看《阿里云開發(fā)者社區(qū)用戶服務協(xié)議》和《阿里云開發(fā)者社區(qū)知識產權保護指引》。如果您發(fā)現本社區(qū)中有涉嫌抄襲的內容,填寫侵權投訴表單進行舉報,一經查實,本社區(qū)將立刻刪除涉嫌侵權內容。

    總結

    以上是生活随笔為你收集整理的揭秘 | 大流量场景下发布如『丝般顺滑』背后的原因的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。