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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Alibaba Sentinel 限流与熔断初探

發布時間:2025/3/16 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Alibaba Sentinel 限流与熔断初探 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在學習一個新技術或新框架時,建議先查看其官方文檔,以獲得對其形成一個整體的認識。https://github.com/alibaba/Sentinel/wiki/%E4%BB%8B%E7%BB%8D

1、Sentinel 是什么 ?主要能解決什么問題?


按照官方的定義,Sentinel 意為分布式系統的流量防衛兵,主要提供限流、熔斷等服務治理相關的功能。

服務的動態注冊、服務發現是 SOA、微服務架構體系中首先需要解決的基本問題,服務治理是 SOA 領域又一重要課題,而 dubbo 框架只提供了一些基本的服務治理能力,例如限制服務并發調用數、配置合適的業務線程數量等,但熔斷相關的功能就涉及的較少。

Sentinel 將作為 Dubbo 生態的重要一員,將集中解決服務治理相關的課題,服務限流與熔斷又是服務治理首先要解決的課題。

那什么是限流與熔斷呢?

限流:我們通常使用TPS對流量來進行描述,限流就是現在服務被調用的并發TPS,從而對系統進行自我保護。

熔斷:就是當系統中某一個服務出現性能瓶頸是,對這個服務的調用進行快速失敗,避免造成連鎖反應,從而影響整個鏈路的調用。

2、限流與熔斷的使用場景


限流還是比較好理解,例如一個項目在上線之前經過性能測試評估,例如服務在 TPS 達到 1w/s 時系統資源利用率飆升,與此同時響應時間急劇增大,那我們就要控制該服務的調用TPS,超過該 TPS 的流量就需要進行干預,可以采取拒絕、排隊等策略,實現流量的削峰填谷。

還有一個場景,例如一下開放平臺,對接口進行收費,免費用戶要控制調用TPS,賬戶的等級不同,允許調用的TPS也不同,這種情況就非常適合限流。

那熔斷的使用場景呢?我們首先來看一下如下的分布式架構。


例如應用A 部署了3臺機器,如果由于某種原因,例如線程池 hold 住,導致發送到它上面的請求會出現超時而報錯,由于該進程并未宕機,請求還是會通過負載算法請求出現故障的機器,出現整個1/3的請求出現超時報錯,影響整個系統的可用性?也就是其中一臺故障會對整個服務質量產生嚴重的影響,雖然是集群部署,但無法達到高可用性。那如何解決該問題?如果在調用方(API-Center) 對異常進行統計,發現發往某一臺機器的錯誤數或錯誤率達到設定的值,就在一定的世界間隔內不繼續發往該機器,轉而發送給集群內正常的節點,這樣就實現了高可用,這就是所謂的熔斷機制。

有了上面的基本認識,接下來會進行一些閱讀源碼的準備,為后面的源碼分析 Sentinel 打下堅實的基礎。

3、Sentinel 源碼結構



Sentinel 的核心模塊說明如下:
  • sentinel-core
    Sentinel 核心模塊,實現限流、熔斷等基本能力。

  • sentinel-dashboard
    Sentinel 可視化控制臺,提供基本的管理界面,配置限流、熔斷規則等,展示監控數據等。

  • sentinel-adapter
    Sentinel 適配,Sentinel-core 模塊提供的是限流等基本API,主要是提供給應用自己去顯示調用,對代碼有侵入性,故該模塊對主流框架進行了適配,目前已適配的模塊如下:

    • sentinel-apache-dubbo-adapter
      對 Apache Dubbo 版本進行適配,這樣應用只需引入 sentinel-apache-dubbo-adapter 包即可對 dubbo 服務進行流控與熔斷,大家可以思考會利用 Dubbo 的哪個功能特性。

    • sentinel-dubbo-adapter
      對 Alibaba Dubbo 版本進行適配。

    • sentinel-grpc-adapter
      對 GRPC 進行適配。

    • sentinel-spring-webflux-adapter
      對響應式編程框架 webflux 進行適配。

    • sentinel-web-servlet
      對 servlet 進行適配,例如 Spring MVC。

    • sentinel-zuul-adapter
      對 zuul 網關進行適配。

  • sentinel-cluster
    提供集群模式的限流與熔斷支持,因為通常一個應用會部署在多臺機器上組成應用集群。

  • sentinel-transport
    網絡通訊模塊,提供 Sentinel 節點與 sentinel-dashboard 的通訊支持,主要有如下兩種實現。

    • sentinel-transport-netty-http
      基于 Netty 實現的 http 通訊模式。

    • sentinel-transport-simple-http
      簡單的 http 實現方式。

  • sentinel-extension
    Sentinel 擴展模式。主要提供了如下擴展(高級)功能:

    • sentinel-annotation-aspectj
      提供基于注解的方式來定義資源等。

    • sentinel-parameter-flow-control
      提供基于參數的限流(熱點限流)。

    • sentinel-datasource-extension
      限流規則、熔斷規則的存儲實現,默認是存儲在內存中。

    • sentinel-datasource-apollo
      基于 apollo 配置中心實現限流規則、熔斷規則的存儲,動態推送生效機制。

    • sentinel-datasource-consul
      基于 consul 實現限流規則、熔斷規則的存儲,動態推送生效機制。

    • sentinel-datasource-etcd
      基于 etcd 實現限流規則、熔斷規則的存儲,動態推送生效機制。

    • sentinel-datasource-nacos
      基于 nacos 實現限流規則、熔斷規則的存儲,動態推送生效機制。

    • sentinel-datasource-redis
      基于 redis 實現限流規則、熔斷規則的存儲,動態推送生效機制。

    • sentinel-datasource-spring-cloud-config
      基于 spring-cloud-config 實現限流規則、熔斷規則的存儲,動態推送生效機制。

    • sentinel-datasource-zookeeper
      基于 zookeeper 實現限流規則、熔斷規則的存儲,動態推送生效機制。

4、在 IntelliJ IDEA 中運行 Sentine Demo


在 sentinel-demo 模塊下提供了很多示例,Seninel 一開始是為 Dubbo 而生的,故我們選取一下 sentinel-demo-apache-dubbo 為本次演示的示例。

注意:該版本需要引入的 apache dubbo 版本需要修改為 2.7.2。

<dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo</artifactId><version>2.7.2</version> </dependency>

Step1:先啟動 sentinel-dashboard,啟動參數配置如下:


sentinel-demo-apache-dubbo 模塊如下所示:

先啟動服務提供者,其配置參數如下:

然后啟動服務消費者,其配置參數如下:

啟動后,我們能看到消費者會出現報錯,因為觸發了限流,我們可以通過控制臺查看接入應用的信息,例如輸入:http://localhost:8080

部分截圖如下:



可以在控制臺動態添加限流、熔斷等規則配置,然后接入的客戶端將能在不啟動應用的情況下生效。

默認情況下,sentinel-dashboard 中的規則是存儲在內存中,重啟后就會丟失,因此 Sentinel 提供了很多種數據源的實現,例如 sentinel-datasource-zookeeper,這部分內容隨著該專欄的陸續更新,將會對該機制進行介紹。

有道無術,術可成;有術無道,止于術

歡迎大家關注Java之道公眾號

好文章,我在看??

新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!

總結

以上是生活随笔為你收集整理的Alibaba Sentinel 限流与熔断初探的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 美女福利视频一区 | 日韩精品一区二区三区在线观看 | 欧美一级乱黄 | 久久高清精品 | 午夜久久 | 一级黄色网址 | 中文字幕在线观看高清 | www欧美com| 摸大乳喷奶水www视频 | m3u8成人免费视频 | 国产成人精品白浆久久69 | 欧美综合色区 | 超碰人人草人人干 | 狠狠躁18三区二区一区传媒剧情 | 三级网站免费 | 久久午夜网 | 亚洲AV无码久久精品浪潮 | 韩国美女一区二区 | 免费成人91| 久久久久一区二区三区四区 | 国产乱码精品一区二区三区五月婷 | 精品一区二区三区av | 日韩丰满少妇 | 中文字幕11页中文字幕11页 | 国产做a | 国精产品一品二品国精品69xx | 五月婷婷在线观看视频 | 亚洲天堂av在线免费观看 | 亚洲网站在线免费观看 | 夜夜嗷| 日韩一区不卡 | 国产成人无码精品久在线观看 | 五十路在线视频 | 久久久久久久久久久久久av | 久久久久久91香蕉国产 | 欧美日韩二区三区 | 亚洲中文在线一区 | 天天爽天天爽 | 久久国产影院 | 在线免费观看日韩视频 | 天天干天天综合 | 中文字幕av网址 | 色呦呦网站 | 五月婷婷伊人网 | 蜜臀久久99精品久久久无需会员 | 欧美性生交大片免费看 | 日韩一区二区影视 | 91欧美亚洲| 五月婷婷视频在线 | 手机av免费| 中文国产| 亚洲视频一二 | 久久久福利视频 | 夜夜嗨aⅴ一区二区三区 | 黄色三级视频网站 | 亚洲一区二区人妻 | 视色视频在线观看 | 涩涩涩在线观看 | 欧洲精品二区 | 肉视频在线观看 | 操人在线观看 | 超碰在线国产 | 国产黄大片 | 国产精品情侣 | 欧美性受xxxx黑人 | 免费一级一片 | 成人做受视频试看60秒 | av加勒比在线| 精品在线小视频 | 91亚洲国产成人精品一区 | 少妇熟女视频一区二区三区 | 天天操夜夜草 | 久久久久亚洲av成人网人人软件 | 三级网站在线看 | 丰满人妻老熟妇伦人精品 | 久草视频国产 | 人妻丰满熟妇无码区免费 | jizz日本免费| 精品视频日韩 | 狂野欧美性猛交xxxx | 91九色porn | 蜜乳av一区 | 99色这里只有精品 | 日韩精品――中文字幕 | 日本国产三级xxxxxx | 夜夜爽天天干 | 宅男的天堂 | 蜜臀久久99精品久久久无需会员 | 欧美三级在线看 | 天天爱综合 | 二十四小时在线更新观看 | 97成人在线视频 | 亚洲AV无码精品久久一区二区 | 亚洲人在线观看视频 | 亚洲AV无码成人精品区明星换面 | 国产成人亚洲精品 | 少妇把腿扒开让我舔18 | 2019自拍偷拍| 三年大全国语中文版免费播放 |