国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

springcloud alibaba sentinel熔斷降級(jí)

這篇具有很好參考價(jià)值的文章主要介紹了springcloud alibaba sentinel熔斷降級(jí)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

簡介

隨著微服務(wù)的流行,服務(wù)和服務(wù)之間的穩(wěn)定性變得越來越重要。Sentinel 以流量為切入點(diǎn),從流量控制、熔斷降級(jí)、系統(tǒng)負(fù)載保護(hù)等多個(gè)維度保護(hù)服務(wù)的穩(wěn)定性。
springcloud alibaba sentinel熔斷降級(jí),微服務(wù),spring cloud,sentinel,spring
sentinel相當(dāng)于hystrix的升級(jí)版,加入了web界面,能夠?qū)崟r(shí)在線的改變流量策略。

Sentinel 分為兩個(gè)部分:

  • 核心庫(Java 客戶端)不依賴任何框架/庫,能夠運(yùn)行于所有 Java 運(yùn)行時(shí)環(huán)境,同時(shí)對(duì) Dubbo / Spring Cloud 等框架也有較好的支持。
  • 控制臺(tái)(Dashboard)基于 Spring Boot 開發(fā),打包后可以直接運(yùn)行,不需要額外的 Tomcat 等應(yīng)用容器。

安裝

官方下載架包后運(yùn)行命令:
java -Dserver.port=8858 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard.jar
訪問localhost:8858 即可進(jìn)入控制臺(tái)界面,賬戶密碼都為sentinel
springcloud alibaba sentinel熔斷降級(jí),微服務(wù),spring cloud,sentinel,spring

sentinel控制臺(tái)使用

https://github.com/alibaba/spring-cloud-alibaba/wiki/Sentinel
按照文檔配置后,訪問localhost:8080可以看到如下畫面。如果沒有左邊的服務(wù)名,可以嘗試注銷賬號(hào)重新登陸。
springcloud alibaba sentinel熔斷降級(jí),微服務(wù),spring cloud,sentinel,spring

流控規(guī)則

springcloud alibaba sentinel熔斷降級(jí),微服務(wù),spring cloud,sentinel,spring
流控模式:

  • 直接:API達(dá)到限流條件時(shí),直接限流。
  • 關(guān)聯(lián):當(dāng)關(guān)聯(lián)的資源達(dá)到閾值時(shí),就限流自己。
  • 鏈路:只記錄指定鏈路上的流量(指定資源從入口資源進(jìn)來的流量,如果達(dá)到閾值,就進(jìn)行限流)【API級(jí)別的針對(duì)來源】。

流控效果:

  • 快速失?。褐苯邮?,拋異常。
  • Warm up:根據(jù)Code Factor(冷加載因子,默認(rèn)3)的值,從閾值/codeFactor,經(jīng)過預(yù)熱時(shí)長,才達(dá)到設(shè)置的QPS閾值。
  • 排隊(duì)等待:勻速排隊(duì),讓請求以勻速的速度通過,閾值類型必須設(shè)置為QPS,否則無效。

熔斷(降級(jí))規(guī)則

springcloud alibaba sentinel熔斷降級(jí),微服務(wù),spring cloud,sentinel,spring

RT(平均響應(yīng)時(shí)間,秒級(jí)):

  • 平均響應(yīng)時(shí)間 超出閾值 且 在時(shí)間窗口內(nèi)通過的請求>=5,兩個(gè)條件同時(shí)滿足后觸發(fā)降級(jí)。
  • 窗口期過后關(guān)閉斷路器。
  • RT最大4900(更大的需要通過-Dcsp.sentinel.statistic.max.rt=XXXX才能生效)。

異常比列(秒級(jí))

  • QPS >= 5且異常比例(秒級(jí)統(tǒng)計(jì))超過閾值時(shí),觸發(fā)降級(jí);時(shí)間窗口結(jié)束后,關(guān)閉降級(jí) 。

異常數(shù)(分鐘級(jí))

  • 異常數(shù)(分鐘統(tǒng)計(jì))超過閾值時(shí),觸發(fā)降級(jí);時(shí)間窗口結(jié)束后,關(guān)閉降級(jí)。

熱點(diǎn)key

何為熱點(diǎn)?熱點(diǎn)即經(jīng)常訪問的數(shù)據(jù)。很多時(shí)候我們希望統(tǒng)計(jì)某個(gè)熱點(diǎn)數(shù)據(jù)中訪問頻次最高的 Top K 數(shù)據(jù),并對(duì)其訪問進(jìn)行限制。比如:
商品 ID 為參數(shù),統(tǒng)計(jì)一段時(shí)間內(nèi)最常購買的商品 ID 并進(jìn)行限制
用戶 ID 為參數(shù),針對(duì)一段時(shí)間內(nèi)頻繁訪問的用戶 ID 進(jìn)行限制

熱點(diǎn)參數(shù)限流會(huì)統(tǒng)計(jì)傳入?yún)?shù)中的熱點(diǎn)參數(shù),并根據(jù)配置的限流閾值與模式,對(duì)包含熱點(diǎn)參數(shù)的資源調(diào)用進(jìn)行限流。熱點(diǎn)參數(shù)限流可以看做是一種特殊的流量控制,僅對(duì)包含熱點(diǎn)參數(shù)的資源調(diào)用生效。

下面的代碼中參數(shù)p1,p2就是熱點(diǎn)。deal_testHotKey為被sentinel限流后的兜底方法。

@GetMapping("/testHotKey")
    @SentinelResource(value = "testHotKey",blockHandler = "deal_testHotKey")
    public String testHotKey(@RequestParam(value = "p1",required = false) String p1,
                             @RequestParam(value = "p2",required = false) String p2){
        return "testHotKey";
    }
    public String deal_testHotKey(String p1, String p2, BlockException e){
        return "deal_testHotKey 兜底方法";
    }

下面設(shè)置會(huì)統(tǒng)計(jì)/testHotKey攜帶參數(shù)0(p1)的次數(shù),如果在統(tǒng)計(jì)窗口(1s)內(nèi)有超過單機(jī)閾值(1條)帶有參數(shù)p1的請求,則會(huì)限流。

注意:這里的blockHandler對(duì)應(yīng)的兜底方法只能在sentinel限流的時(shí)候才會(huì)觸發(fā),程序異常并不會(huì)走兜底方法。
springcloud alibaba sentinel熔斷降級(jí),微服務(wù),spring cloud,sentinel,spring

參數(shù)例外項(xiàng)

  • 普通 - 超過1秒鐘一個(gè)后,達(dá)到閾值1后馬上被限流
  • 我們期望p1參數(shù)當(dāng)它是某個(gè)特殊值時(shí),它的限流值和平時(shí)不一樣
  • 特例 - 假如當(dāng)p1的值等于5時(shí),它的閾值可以達(dá)到200

springcloud alibaba sentinel熔斷降級(jí),微服務(wù),spring cloud,sentinel,spring
注意:參數(shù)的值應(yīng)該是基本類型or String

系統(tǒng)規(guī)則(了解)

系統(tǒng)保護(hù)規(guī)則是從應(yīng)用級(jí)別的入口流量進(jìn)行控制,從單臺(tái)機(jī)器的 load、CPU 使用率、平均 RT、入口 QPS 和并發(fā)線程數(shù)等幾個(gè)維度監(jiān)控應(yīng)用指標(biāo),讓系統(tǒng)盡可能跑在最大吞吐量的同時(shí)保證系統(tǒng)整體的穩(wěn)定性。

系統(tǒng)保護(hù)規(guī)則是應(yīng)用整體維度的,而不是資源維度的,并且僅對(duì)入口流量生效。入口流量指的是進(jìn)入應(yīng)用的流量(EntryType.IN),比如 Web 服務(wù)或 Dubbo 服務(wù)端接收的請求,都屬于入口流量。

系統(tǒng)規(guī)則支持以下的模式:

Load 自適應(yīng)(僅對(duì) Linux/Unix-like 機(jī)器生效):系統(tǒng)的 load1 作為啟發(fā)指標(biāo),進(jìn)行自適應(yīng)系統(tǒng)保護(hù)。當(dāng)系統(tǒng) load1 超過設(shè)定的啟發(fā)值,且系統(tǒng)當(dāng)前的并發(fā)線程數(shù)超過估算的系統(tǒng)容量時(shí)才會(huì)觸發(fā)系統(tǒng)保護(hù)(BBR 階段)。系統(tǒng)容量由系統(tǒng)的 maxQps * minRt 估算得出。設(shè)定參考值一般是 CPU cores * 2.5。
CPU usage(1.5.0+ 版本):當(dāng)系統(tǒng) CPU 使用率超過閾值即觸發(fā)系統(tǒng)保護(hù)(取值范圍 0.0-1.0),比較靈敏。
平均 RT:當(dāng)單臺(tái)機(jī)器上所有入口流量的平均 RT 達(dá)到閾值即觸發(fā)系統(tǒng)保護(hù),單位是毫秒。
并發(fā)線程數(shù):當(dāng)單臺(tái)機(jī)器上所有入口流量的并發(fā)線程數(shù)達(dá)到閾值即觸發(fā)系統(tǒng)保護(hù)。
入口 QPS:當(dāng)單臺(tái)機(jī)器上所有入口流量的 QPS 達(dá)到閾值即觸發(fā)系統(tǒng)保護(hù)。

@SentinelResource兜底方法配置

可以另外創(chuàng)建一個(gè)類來進(jìn)行兜底方法的配置:

public class CustomerBlockHandler {
    public static CommonResult handlerException(BlockException exception){
        return new CommonResult(4444,"用戶自定義全局Exception: ",new Payment(2020L,"serial003"));
    }
    public static CommonResult handlerException2(BlockException exception){
        return new CommonResult(4444,"用戶自定義全局Exception: ",new Payment(2020L,"serial003-2"));
    }
}

controller:通過blockHandlerClass指定類名,blockHandler指定選定的兜底方法。

   @GetMapping("/byResource")
    @SentinelResource(value = "byResource",blockHandlerClass = CustomerBlockHandler.class,blockHandler = "handlerException")
    public CommonResult byResource(){
        return new CommonResult(200,"按資源名稱訪問限流測試OK",new Payment(2020L,"serial001"));
    }

整合nacos進(jìn)行持久化存儲(chǔ)

默認(rèn)情況下,當(dāng)我們在Sentinel控制臺(tái)中配置規(guī)則時(shí),控制臺(tái)推送規(guī)則方式是通過API將規(guī)則推送至客戶端并直接更新到內(nèi)存中。一旦我們重啟應(yīng)用,規(guī)則將消失。
springcloud alibaba sentinel熔斷降級(jí),微服務(wù),spring cloud,sentinel,spring

配置

引入依賴

<dependency>
    <groupId>com.alibaba.csp</groupId>
    <artifactId>sentinel-datasource-nacos</artifactId>
</dependency>

修改application.yml:

spring:
  cloud:
    sentinel:
      datasource:
        ds1:
          nacos:
            server-addr: localhost:8848
            dataId: ${spring.application.name}-sentinel
            groupId: DEFAULT_GROUP
            data-type: json
            rule-type: flow

在nacos中添加配置:
springcloud alibaba sentinel熔斷降級(jí),微服務(wù),spring cloud,sentinel,spring

[
    {
        "resource": "/rateLimit/byUrl",
        "limitApp": "default",
        "grade": 1,
        "count": 1,
        "strategy": 0,
        "controlBehavior": 0,
        "clusterMode": false
    }
]

相關(guān)參數(shù)解釋:
resource:資源名稱;
limitApp:來源應(yīng)用;
grade:閾值類型,0表示線程數(shù),1表示QPS;
count:單機(jī)閾值;
strategy:流控模式,0表示直接,1表示關(guān)聯(lián),2表示鏈路;
controlBehavior:流控效果,0表示快速失敗,1表示W(wǎng)arm Up,2表示排隊(duì)等待;
clusterMode:是否集群。

之后可以發(fā)現(xiàn)Sentinel控制臺(tái)已經(jīng)有了如下限流規(guī)則:
springcloud alibaba sentinel熔斷降級(jí),微服務(wù),spring cloud,sentinel,spring文章來源地址http://www.zghlxwxcb.cn/news/detail-819362.html

到了這里,關(guān)于springcloud alibaba sentinel熔斷降級(jí)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【springcloud 微服務(wù)】Spring Cloud Alibaba整合Sentinel詳解

    目錄 一、前言 二、環(huán)境準(zhǔn)備 2.1 部署sentinel管控臺(tái) 2.1.1 官網(wǎng)下載sentinel的jar包 2.1.2 啟動(dòng)控制臺(tái)

    2023年04月09日
    瀏覽(96)
  • 【springcloud 微服務(wù)】Spring Cloud Alibaba Sentinel使用詳解

    目錄 一、前言 二、分布式系統(tǒng)遇到的問題 2.1 服務(wù)可用性問題 2.1.1? 單點(diǎn)故障

    2024年01月16日
    瀏覽(22)
  • 【Spring Cloud】Sentinel流量限流和熔斷降級(jí)的講解

    【Spring Cloud】Sentinel流量限流和熔斷降級(jí)的講解

    ????歡迎來到我的CSDN主頁!???? ??我是Java方文山,一個(gè)在CSDN分享筆記的博主。???? ??推薦給大家我的專欄《Spring Cloud》。???? ??點(diǎn)擊這里,就可以查看我的主頁啦!???? Java方文山的個(gè)人主頁 ??如果感覺還不錯(cuò)的話請給我點(diǎn)贊吧!???? ??期待你的加入,一起

    2024年01月23日
    瀏覽(24)
  • Spring Cloud實(shí)戰(zhàn) |分布式系統(tǒng)的流量控制、熔斷降級(jí)組件Sentinel如何使用

    Spring Cloud實(shí)戰(zhàn) |分布式系統(tǒng)的流量控制、熔斷降級(jí)組件Sentinel如何使用

    專欄集錦,大佬們可以收藏以備不時(shí)之需 Spring Cloud實(shí)戰(zhàn)專欄:https://blog.csdn.net/superdangbo/category_9270827.html Python 實(shí)戰(zhàn)專欄:https://blog.csdn.net/superdangbo/category_9271194.html Logback 詳解專欄:https://blog.csdn.net/superdangbo/category_9271502.html tensorflow專欄:https://blog.csdn.net/superdangbo/category_869

    2024年02月04日
    瀏覽(34)
  • Java之SpringCloud Alibaba【四】【微服務(wù) Sentinel服務(wù)熔斷】

    Java之SpringCloud Alibaba【四】【微服務(wù) Sentinel服務(wù)熔斷】

    Java之SpringCloud Alibaba【一】【Nacos一篇文章精通系列】 跳轉(zhuǎn) Java之SpringCloud Alibaba【二】【微服務(wù)調(diào)用組件Feign】 跳轉(zhuǎn) Java之SpringCloud Alibaba【三】【微服務(wù)Nacos-config配置中心】 跳轉(zhuǎn) Java之SpringCloud Alibaba【四】【微服務(wù) Sentinel服務(wù)熔斷】 跳轉(zhuǎn) Java之SpringCloud Alibaba【五】【微服務(wù)

    2024年02月12日
    瀏覽(19)
  • 【Spring Cloud Alibaba】7.Sentinel熔斷器儀表盤監(jiān)控

    【Spring Cloud Alibaba】7.Sentinel熔斷器儀表盤監(jiān)控

    接下來我們通過 Sentinel 控制臺(tái)來實(shí)現(xiàn)對(duì)服務(wù)消費(fèi)者提供的熔斷機(jī)制進(jìn)行監(jiān)控和控制,本操作先要完成之前的步驟,詳情請參照【Spring Cloud Alibaba】Spring Cloud Alibaba 搭建教程 Sentinel 提供一個(gè)輕量級(jí)的開源控制臺(tái),它提供機(jī)器發(fā)現(xiàn)以及健康情況管理、監(jiān)控(單機(jī)和集群),規(guī)則管

    2023年04月08日
    瀏覽(22)
  • Java之SpringCloud Alibaba【五】【微服務(wù) Sentinel整合openfeign進(jìn)行降級(jí)】

    Java之SpringCloud Alibaba【五】【微服務(wù) Sentinel整合openfeign進(jìn)行降級(jí)】

    Java之SpringCloud Alibaba【一】【Nacos一篇文章精通系列】 跳轉(zhuǎn) Java之SpringCloud Alibaba【二】【微服務(wù)調(diào)用組件Feign】 跳轉(zhuǎn) Java之SpringCloud Alibaba【三】【微服務(wù)Nacos-config配置中心】 跳轉(zhuǎn) Java之SpringCloud Alibaba【四】【微服務(wù) Sentinel服務(wù)熔斷】 跳轉(zhuǎn) Java之SpringCloud Alibaba【五】【微服務(wù)

    2024年02月11日
    瀏覽(39)
  • 【Springcloud】Sentinel熔斷和降級(jí)

    【Springcloud】Sentinel熔斷和降級(jí)

    服務(wù)的穩(wěn)定是公司可持續(xù)發(fā)展的重要基石,隨著業(yè)務(wù)量的快速發(fā)展,一些平時(shí)正常運(yùn)行的服務(wù),會(huì)出現(xiàn)各種突發(fā)狀況,而且在分布式系統(tǒng)中,每個(gè)服務(wù)本身又存在很多不可控的因素,比如線程池處理緩慢,導(dǎo)致請求超時(shí),資源不足,導(dǎo)致請求被拒絕,又甚至直接服務(wù)不可用、

    2024年02月09日
    瀏覽(18)
  • 云原生微服務(wù) Spring Cloud Hystrix 降級(jí)、熔斷實(shí)戰(zhàn)應(yīng)用

    云原生微服務(wù) Spring Cloud Hystrix 降級(jí)、熔斷實(shí)戰(zhàn)應(yīng)用

    第一章 Java線程池技術(shù)應(yīng)用 第二章 CountDownLatch和Semaphone的應(yīng)用 第三章 Spring Cloud 簡介 第四章 Spring Cloud Netflix 之 Eureka 第五章 Spring Cloud Netflix 之 Ribbon 第六章 Spring Cloud 之 OpenFeign 第七章 Spring Cloud 之 GateWay 第八章 Spring Cloud Netflix 之 Hystrix 多個(gè)微服務(wù)之間調(diào)用的時(shí)候,假如微服

    2024年02月08日
    瀏覽(29)
  • SpringCloud(17~21章):Alibaba入門簡介、Nacos服務(wù)注冊和配置中心、Sentinel實(shí)現(xiàn)熔斷與限流、Seata處理分布式事務(wù)

    SpringCloud(17~21章):Alibaba入門簡介、Nacos服務(wù)注冊和配置中心、Sentinel實(shí)現(xiàn)熔斷與限流、Seata處理分布式事務(wù)

    Spring Cloud Netflix項(xiàng)目進(jìn)入維護(hù)模式 https://spring.io/blog/2018/12/12/spring-cloud-greenwich-rc1-available-now 說明 Spring Cloud Netflix Projects Entering Maintenance Mode 什么是維護(hù)模式 將模塊置于維護(hù)模式,意味著 Spring Cloud 團(tuán)隊(duì)將不會(huì)再向模塊添加新功能。我們將修復(fù) block 級(jí)別的 bug 以及安全問題,我

    2024年01月19日
    瀏覽(43)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包