专栏首页技术开发——你我他Sentinel——自定义URL限流异常

Sentinel——自定义URL限流异常

目标:Sentinel的基本应用 工具:IDEA--2020.1、Sentinel Maven 学习目标:学习Sentinel的自定义URL限流异常 本次学习的工程下载链接放到文本最后面

1.Sentinel在默认情况下,URL触发限流后会直接返回。

Blocked by Sentinel (flow limiting)

2.我们一般都是在应用中用json传递数据,所以我们如果希望修改触发限流之后返回的结果形式,就可以通过自定义限流异常来处理,实现UrlBlockHandler并且重写blocked方法

@Service
public class CustomUrlBlockHandler implements UrlBlockHandler {
    @Override
    public void blocked(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, BlockException e) throws IOException {
        httpServletResponse.setHeader("Content-Type","application/json;charset=UTF-8");
        String message = "{\"code\":999,\"msg\":\"访问人数过多\"}";
        //如果加了转义符号看不明白
        //使用类创建就json对象
        httpServletResponse.getWriter().write(message);
    }
}

或者是触发限流后我们希望跳转到其他界面(降级界面)我们可以配置spring.cloud.sentinel.servlet.block-page={url}来实现

接下来我们访问一下我们的dash资源(记得重新给我们的Sentinel Dashboard上流控规则)

跳转降级界面测试

修改application中的文件为:

spring:
  application:
    name: springboot-sentinel-sample
  cloud:
    sentinel:
      transport:
        dashboard: 127.0.0.1:7777
      servlet:
        block-page: /goerror

在DashboardController控制器里面加一个接口

@GetMapping("/goerror")
private String error(){
    return "error";
}

我们先把我们的我们自定义限流异常给注释掉,加上我们的降级跳转界面(记得重新给我们的Sentinel Dashboard上流控规则)。

多刷新几次这个界面 http://localhost:8080/dash 看到的效果如下:

下载链接:sentinel-sample2.rar

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Sentinel的基本应用

    目标:Sentinel的基本应用 工具:IDEA--2020.1、Sentinel Maven 学习目标:学习Sentinel的限流设置 本次学习的工程下载链接...

    背雷管的小青年
  • Sentinel集成Nacos实现动态流控规则

    目标:Sentinel的基本应用 工具:IDEA--2020.1、Sentinel Maven Nacos 学习目标:学习Sentinel集成Nacos实现动态...

    背雷管的小青年
  • Sentinel——URL资源清洗

    目标:Sentinel的基本应用 工具:IDEA--2020.1、Sentinel Maven Spring Boot 学习目标:学习基于Sentinel Da...

    背雷管的小青年
  • 做数据处理要遵守的一些规则

    数据处理与分析
  • ​业务双活的数据切换思路设计(下)

    在完成数据迁移,数据同步之后,目前的流量是在“已有数据服务”侧,如果要实现服务的平滑迁移,我们可以按照这个流程来进行设计。

    jeanron100
  • 企业人员安全意识之邮件钓鱼

    今天是入职甲方公司做信息安全的第一个月,给我的感觉就是新鲜,思考及关注的面和做白帽子挖漏洞完全不一样。

    信安之路
  • Zenefits 高级产品总监 Itai Turbahn:HR要强调移动化和员工相结合的一体化体验

    T客汇官网:tikehui 撰文 |方方 Zenefits的高级产品总监Itai Turbahn发表了题为《HR新趋势 移动化、机器人和员工相结合的一体化体验》...

    人称T客
  • MacOS : 前端必备姿势(工作环境)

    算是爬出来了...此篇的工作设备是(Macbook Pro 2017款,所以可能会说到 touchbar!)

    CRPER
  • 海量数据处理利器greenplum——初识

    简介及适用场景 如果想在数据仓库中快速查询结果,可以使用greenplum。 Greenplum数据库也简称GPDB。它拥有丰富的特性: 第一,完善的标准支持:...

    cloudskyme
  • python学习-游戏

    py3study

扫码关注云+社区

领取腾讯云代金券