欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

springcloud3 Sentinel的搭建及案例操作方法

 更新時(shí)間:2023年01月28日 14:39:36   作者:健康平安的活著  
Sentinel是分布式系統(tǒng)流量控制的哨兵,阿里開源的一套服務(wù)容錯(cuò)的綜合性解決方案,這篇文章主要介紹了springcloud3 Sentinel的搭建以及案例操作,需要的朋友可以參考下

一 sentinel的概念

1.1 sentinel

Sentinel是分布式系統(tǒng)流量控制的哨兵,阿里開源的一套服務(wù)容錯(cuò)的綜合性解決方案。

主要用來(lái)處理:

服務(wù)降級(jí)

服務(wù)熔斷

超時(shí)處理

流量控制

sentinel 的使用可以分為兩個(gè)部分:

核心庫(kù)(Java 客戶端):不依賴任何框架/庫(kù),能夠運(yùn)行于 Java 8 及以上的版本的運(yùn)行時(shí)環(huán)境,同時(shí)對(duì) Dubbo / Spring Cloud 等框架也有較好的支持。

控制臺(tái)(Dashboard):Dashboard 主要負(fù)責(zé)管理推送規(guī)則、監(jiān)控、管理機(jī)器信息等?;?Spring Boot 開發(fā),打包后可以直接運(yùn)行。

二 sentinel的安裝

2.1 sentinel的安裝

中文文檔:

quick-start | Sentinel

程序包下載:

Releases · alibaba/Sentinel · GitHub

啟動(dòng)jar包

F:\>java -jar sentinel-dashboard-1.7.2.jar

頁(yè)面訪問(wèn): sentinel /  sentinel

輸入地址: http://localhost:8080/

三   sentinel的各種用途

3.1 實(shí)時(shí)監(jiān)控

3.1.1 架構(gòu)圖

3.1.2 sentinel消費(fèi)項(xiàng)目

1.pom

<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.13</version>
      <scope>test</scope>
    </dependency>
    <!--SpringCloud ailibaba nacos -->
    <dependency>
      <groupId>com.alibaba.cloud</groupId>
      <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
      <version>2021.1</version>
    </dependency>
    <!--SpringCloud ailibaba sentinel-datasource-nacos 后續(xù)做持久化用到-->
    <dependency>
      <groupId>com.alibaba.csp</groupId>
      <artifactId>sentinel-datasource-nacos</artifactId>
      <version>1.5.2</version>
    </dependency>
    <!--SpringCloud ailibaba sentinel -->
    <dependency>
      <groupId>com.alibaba.cloud</groupId>
      <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
      <version>2021.1</version>
    </dependency>
    <!--openfeign-->
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>
    <!-- SpringBoot整合Web組件+actuator -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <!--日常通用jar包配置-->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-devtools</artifactId>
      <scope>runtime</scope>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>cn.hutool</groupId>
      <artifactId>hutool-all</artifactId>
      <version>4.6.3</version>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

2.application配置文件

server:
  port: 7005
 
spring:
  application:
    name: mscloud-sentinel-consumer
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 #Nacos服務(wù)注冊(cè)中心地址
    sentinel:
      transport:
        dashboard: localhost:8080 #配置Sentinel dashboard地址
        port: 8719
 
management:
  endpoints:
    web:
      exposure:
        include: '*'

3.業(yè)務(wù)類

@RestController
@Slf4j
public class DataLimitController {
        @GetMapping("/testA")
        public String testA()
        {
            return "------testA";
        }
 
        @GetMapping("/testB")
        public String testB()
        {
            log.info(Thread.currentThread().getName()+"\t"+"...testB");
            return "------testB";
        }
}

4.啟動(dòng)類

@EnableDiscoveryClient
@SpringBootApplication
public class App 
{
    public static void main( String[] args )
 
    {
        SpringApplication.run(App.class, args);
    }
}

3.1.3 操作

1.啟動(dòng)nacos

2.啟動(dòng)sentinel服務(wù)

 3.啟動(dòng)sentinel消費(fèi)服務(wù)

 3.1.4 進(jìn)行監(jiān)控訪問(wèn)

訪問(wèn)地址: http://localhost:7005/testA      多次刷新訪問(wèn)幾次

 2.查看監(jiān)控

訪問(wèn)地址: http://localhost:7005/testB      多次刷新訪問(wèn)幾次

3.2 流量控制

3.2.1 qps+閾值進(jìn)行限流

1.查看資源,針對(duì)資源進(jìn)行流控

 2.設(shè)置配置

1秒鐘qps的閾值為3,一秒鐘請(qǐng)求大于3,則容錯(cuò)提示。

 聯(lián)系請(qǐng)求大于3次,則 給出如下提示:

 3.2.2 線程數(shù)+閾值進(jìn)行限流

當(dāng)線程數(shù)達(dá)到閾值后,進(jìn)行限流提示。

1.設(shè)置

2.訪問(wèn)驗(yàn)證

 3.2.3 線程數(shù)+閾值+關(guān)聯(lián)進(jìn)行限流

1.通過(guò)資源A關(guān)聯(lián)的資源B,資源B發(fā)生qps超過(guò)規(guī)定的閾值,則導(dǎo)致資源A進(jìn)行限流提示。

2.設(shè)置

 3.postman定時(shí)這是

4.查看訪問(wèn)資源A:http://localhost:7005/testA

 3.2.4 線程數(shù)+閾值+關(guān)聯(lián)+預(yù)熱進(jìn)行限流

1.說(shuō)明:

默認(rèn)的colorfactor為3,QPS是從(threshold/3)開始,即

系統(tǒng)初始化的閾值為:12/3約等于4,,即閾值初始化為4,經(jīng)過(guò)5秒后閾值才升到設(shè)定的12.

2.配置

3.訪問(wèn)

前5秒,不停刷新會(huì)提示限流信息,

 5秒過(guò)后,不停刷新(手工不停刷新達(dá)不到設(shè)定的閾值12),所以不再限流

 3.2.5 線程數(shù)+閾值+排隊(duì)等待進(jìn)行限流

1.說(shuō)明

勻速排隊(duì):讓請(qǐng)求以均勻的速度通過(guò),閾值類型必須設(shè)置成QPS,否則無(wú)效。

設(shè)置含義:/testB 每秒3次請(qǐng)求,超過(guò)閾值后就進(jìn)行排隊(duì),等待大于20秒則滿足超時(shí)時(shí)間,進(jìn)行請(qǐng)求。

2.配置

 3.查看效果

到此這篇關(guān)于springcloud3 Sentinel的搭建以及案例操作的文章就介紹到這了,更多相關(guān)springcloud3 Sentinel搭建內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • spring boot中多線程開發(fā)的注意事項(xiàng)總結(jié)

    spring boot中多線程開發(fā)的注意事項(xiàng)總結(jié)

    spring boot 通過(guò)任務(wù)執(zhí)行器 taskexecutor 來(lái)實(shí)現(xiàn)多線程和并發(fā)編程。下面這篇文章主要給大家介紹了關(guān)于spring boot中多線程開發(fā)的注意事項(xiàng),文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-09-09
  • 淺談Java內(nèi)存區(qū)域與對(duì)象創(chuàng)建過(guò)程

    淺談Java內(nèi)存區(qū)域與對(duì)象創(chuàng)建過(guò)程

    下面小編就為大家?guī)?lái)一篇淺談Java內(nèi)存區(qū)域與對(duì)象創(chuàng)建過(guò)程。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07
  • java中如何實(shí)現(xiàn) zip rar 7z 壓縮包解壓

    java中如何實(shí)現(xiàn) zip rar 7z 壓縮包解壓

    這篇文章主要介紹了java中如何實(shí)現(xiàn) zip rar 7z 壓縮包解壓?jiǎn)栴},具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 在@Value注解內(nèi)使用SPEL自定義函數(shù)方式

    在@Value注解內(nèi)使用SPEL自定義函數(shù)方式

    這篇文章主要介紹了在@Value注解內(nèi)使用SPEL自定義函數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • java的jdbc簡(jiǎn)單封裝方法

    java的jdbc簡(jiǎn)單封裝方法

    本篇文章是對(duì)java的jdbc簡(jiǎn)單封裝方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2015-07-07
  • Java在重載中使用Object的問(wèn)題

    Java在重載中使用Object的問(wèn)題

    這篇文章主要介紹了Java在重載中使用Object的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • SpringBoot特點(diǎn)之依賴管理和自動(dòng)裝配(實(shí)例代碼)

    SpringBoot特點(diǎn)之依賴管理和自動(dòng)裝配(實(shí)例代碼)

    在使用SpringBoot的時(shí)候,會(huì)自動(dòng)將Bean裝配到IoC容器中,操作也很簡(jiǎn)單,今天小編給大家介紹下SpringBoot特點(diǎn)之依賴管理和自動(dòng)裝配的知識(shí),感興趣的朋友一起看看吧
    2022-03-03
  • 在Spring中使用Knife4j進(jìn)行API文檔生成與管理的操作方法

    在Spring中使用Knife4j進(jìn)行API文檔生成與管理的操作方法

    Knife4j 是為Java MVC 框架(如Spring Boot、Spring MVC等)集成 Swagger 生成 API 文檔的增強(qiáng)解決方案,它基于 Swagger 的核心功能,通過(guò)定制化的前端界面和一些額外的特性,本文介紹了在Spring中使用Knife4j進(jìn)行API文檔生成與管理的操作方法,需要的朋友可以參考下
    2024-12-12
  • IDEA查看所有的斷點(diǎn)(Breakpoints)并關(guān)閉的方式

    IDEA查看所有的斷點(diǎn)(Breakpoints)并關(guān)閉的方式

    我們?cè)谑褂肐DEA開發(fā)Java應(yīng)用時(shí),基本上都需要進(jìn)行打斷點(diǎn)的操作,這方便我們排查BUG,也方便我們查看設(shè)計(jì)的是否正確,不過(guò)有時(shí)候,我們不希望進(jìn)入斷點(diǎn),所以我們需要快速關(guān)閉所有斷點(diǎn),故本文給大家介紹了IDEA查看所有的斷點(diǎn)(Breakpoints)并關(guān)閉的方式
    2024-10-10
  • 基于Java生成GUID的實(shí)現(xiàn)方法

    基于Java生成GUID的實(shí)現(xiàn)方法

    本篇文章是對(duì)Java生成GUID的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05

最新評(píng)論