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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

如何利用 “集群流控” 保障微服务的稳定性?

發布時間:2025/3/20 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何利用 “集群流控” 保障微服务的稳定性? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者:宿何

微服務的穩定性一直是開發者非常關注的話題。隨著業務從單體架構向分布式架構演進以及部署方式的變化,服務之間的依賴關系變得越來越復雜,業務系統也面臨著巨大的高可用挑戰。應用高可用服務 AHAS (Application High Availability Service) 是經阿里巴巴內部多年高可用體系沉淀下來的云產品,以流量與容錯為切入點,從流量控制、不穩定調用隔離、熔斷降級、熱點流量防護、系統自適應保護、集群流控等多個維度來幫助保障服務的穩定性,同時提供秒級的流量監控分析功能。AHAS 不僅在阿里內部淘寶、天貓等電商領域有著廣泛的應用,在互聯網金融、在線教育、游戲、直播行業和其他大型政央企行業也有著大量的實踐。

流控是保障微服務穩定性最常用也是最直接的一種控制手段。每個系統、服務都有其能承載的容量上限,流控的思路非常簡單,當某個接口的請求 QPS 超出一定的上限后,拒絕多余的請求,防止系統被突發的流量打垮。市面上最常見的方案是單機維度的流控,比如通過 PTS 性能測試預估某個接口的容量上限是 100 QPS,服務有 10 個實例,則配置單機流控 10 QPS。但很多時候,由于流量分布的不確定性,單機維度的流量控制存在一些效果不佳的情況。

典型場景 1:精確控制對下游的調用總量

場景: 服務 A 需要頻繁調用服務 B 的查詢接口,但服務 A 和 B 的容量存在差異,服務 B 約定最多給服務 A 提供總共 600 QPS 的查詢能力,通過流控等手段進行控制。

痛點: 若按照單機流控的策略配置,由于調用邏輯、負載均衡策略等原因,A 調用 B 到達每個實例的流量分布可能非常不均,部分流量較大的服務 B 實例觸發單機流控,但總體限制量尚未達到,導致 SLA 未達標。這種不均的情況經常會發生在調用某個依賴服務或組件(如數據庫訪問)的時候,這也是集群流控的一個典型場景:精確控制微服務集群對下游服務(或數據庫、緩存)的調用總量。

典型場景 2:業務鏈路入口進行請求總量控制

場景: 在 Nginx/Ingress 網關、API Gateway (Spring Cloud Gateway, Zuul) 進行入口流量控制,希望精確控制某個或某組 API 的流量來起到提前保護作用,多余流量不會打到后端系統。

痛點: 如果按照單機維度配置,一方面不好感知網關機器數變化,另一方面網關流量不均可能導致限流效果不佳;而且從網關入口角度來講,配置總體閾值是最自然的手段。

AHAS 集群流控

AHAS 集群流控可以精確地控制某個服務接口在整個集群的實時調用總量,可以解決單機流控因流量不均勻、機器數頻繁變動、均攤閾值太小導致限流效果不佳的問題,結合單機流控兜底,更好地發揮流量防護的效果。

對于上面的場景,通過 AHAS 集群流控,無論是 Dubbo 服務調用、Web API 訪問,還是自定義的業務邏輯,均支持精確控制調用總量,而無關調用邏輯、流量分布情況、實例分布。既可以支撐數十萬 QPS 大流量控制,也支持分鐘小時級業務維度小流量精確控制。防護觸發后的行為可由用戶自定義(如返回自定義的內容、對象)。

AHAS 集群防護具有以下幾大優勢:

  • 場景豐富: 全面覆蓋從網關/Mesh 入口流量精確防護、Web/RPC 服務/SQL 調用精確流控,到分鐘小時級業務維度流量控制的場景,支持數十萬 QPS 量級;

  • 低使用成本: 無需特殊接入方式,開箱即用,快速配置;

  • 全自動管控與運維: 自動化管控與分配 token server 資源,自動化運維能力保障可用性,用戶無需關注服務端資源準備與分配,只需關注規則配置與業務流程;

  • 低性能損耗: 性能模式下對業務鏈路完全無時延增加,精確模式對業務鏈路的 RT 損耗控制在 3ms 之內,用戶可放心使用;

  • 配套的可觀測能力, 實時了解接口穩定性與規則生效情況。

下面我們就來用一個示例來介紹一下,如何快速將應用接入 AHAS 來玩轉集群流控能力,保障服務穩定性。

快速玩轉 AHAS 集群流控

第一步,我們將服務或網關接入 AHAS 流量防護。AHAS 提供多種快速便捷的無侵入接入手段:

AHAS 流量防護支持 Java/Go/C++/PHP 等多語言原生接入,以及 Nginx/Ingress 網關接入和 Mesh 接入;Java 應用支持全方位的 20+ 種微服務框架/組件(詳情見文末相關鏈接):

  • Web 服務端:Spring Web/Spring Boot/Spring Cloud/Tomcat/Jetty/Undertow

  • Web client:OkHttp/Apache HttpClient

  • RPC:Dubbo/Feign/gRPC

  • DAO/緩存:MyBatis/Spring Data JPA/Memcached/Jedis client

  • MQ consumer:RocketMQ client/Kafka client/RocketMQ client

  • API Gateway:Spring Cloud Gateway/Zuul 1.x

  • Reactor 框架

接入 AHAS 成功后,只要觸發服務調用/接口訪問,即可在 AHAS 控制臺(詳情見文末相關鏈接)看到自己的服務,并可以在監控頁面看到自己的接口:

第二步,我們在應用左側菜單的“集群流控-集群配置”頁面,開啟集群流控功能。測試應用我們可以開啟“試用”集群,不同的集群規格可以承載不同的 QPS 量級:

第三步,我們在實時監控頁面找一個接口,點擊右上角的“+”號,新增流控規則(詳情見文末相關鏈接)。以下示例中,我們對?/doSomething?這個接口配置集群流控規則,這個接口總的訪問量每秒鐘不超過 200 次。規則狀態為“開啟”,代表新增后實時生效。

點擊下一步,我們還可以給選擇的 Web/RPC 調用配置防護規則觸發后的處理邏輯(詳情見文末相關鏈接),如自定義返回值。最終配置完成后,我們點擊新增按鈕,這條規則就會生效到每個節點。

配置完畢后,我們可以向應用集群中不同機器發起一定數量的該接口請求,可以發現每秒鐘超過 200 個請求后會自動返回我們在規則中預設好的返回行為;同時控制臺實時監控頁面也可以看到,多余的流量被拒絕,接口每秒鐘通過的總量級平穩在 200 QPS:

通過幾步簡單的配置,我們就可以快速體驗 AHAS 集群流控給業務流量帶來“如絲般順滑”的保護能力;同時最近 AHAS 還新上線 Nginx/Ingress 網關入口流量防護、Web 請求參數流控(詳情見文末相關鏈接)等核心功能,歡迎大家點擊閱讀原文,在前往 AHAS 控制臺進行快速體驗。

相關鏈接

1)全方位的 20+ 種微服務框架/組件:

https://help.aliyun.com/document_detail/128800.html

2)AHAS 控制臺:

https://common-buy.aliyun.com/?commodityCode=ahas_001#/buy

3)新增流控規則:

https://help.aliyun.com/document_detail/174871.html

4)防護規則觸發后的處理邏輯https://help.aliyun.com/document_detail/290938.html

5)Nginx/Ingress 網關入口流量防護https://help.aliyun.com/document_detail/209640.html

6)Web 請求參數流控https://help.aliyun.com/document_detail/337922.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的如何利用 “集群流控” 保障微服务的稳定性?的全部內容,希望文章能夠幫你解決所遇到的問題。

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