栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringCloud 整合 Sentinel

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringCloud 整合 Sentinel

Sentinel 是阿里开源的分布式流量哨兵,具有限流、熔断降级、服务监控等功能。

下面介绍在 SpringCloud中的具体使用方式。

目录

1. 下载并启动 Sentinel 控制台服务

2. 引入起步依赖

3. 配置

4. 代码

5. 使用

6. 验证结果


1. 下载并启动 Sentinel 控制台服务
java -Dserver.port=8070 -Dcsp.sentinel.dashboard.server=localhost:8070 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.2.jar

2. 引入起步依赖
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-sentinel
            2.1.4.RELEASE
        

3. 配置
spring:
  profiles:
    active: dev
  application:
    name: springboot-hello
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8849
      config:
        server-addr: 127.0.0.1:8849
        # 扩展名必须要严格一致:springboot-hello-dev.yml,
        # 如果配置成 .yaml, 则 springboot-hello-dev.yaml
        file-extension: yml
    sentinel:
      transport:
        dashboard: localhost:8070

server:
  port: 9000

4. 代码
    
    @SentinelResource(value = "sayHello", fallback = "sayDefaultHello",blockHandler = "blockWarn")
    @RequestMapping("/hello")
    @RequestMapping("/hello")
    public String hello(){
        int b = 1/0;
        return String.format("Hello 【%s】", username);
    }

    // 异常降级,只针对业务异常!
    public String sayDefaultHello(){
        return String.format("Hello World!");
    }

    // 熔断降级、流控 都会触发 BlockException
    public  String blockWarn(BlockException e) {
        if (e instanceof FlowException) {
            return "访问太频繁,稍后重试!";
        }

        if (e instanceof DegradeException) {
            return "服务已自动断开,稍后重试!";
        }

        return "稍后重试";
    }

5. 使用

在 dashboard 配置流控规则和熔断规则:

6. 验证结果

1. 首次访问,触发 fallback 

2. 连续频繁刷新,触发限流

 3. 访问多次,达到熔断策略,触发熔断

如果觉得还不错的话,关注、分享、在看(关注不失联~), 原创不易,且看且珍惜~

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/322191.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号