首页 > 其他分享 >springcloud alibaba sentinel降级 @SentinelResource

springcloud alibaba sentinel降级 @SentinelResource

时间:2024-08-09 12:39:00浏览次数:10  
标签:降级 CommonResult springcloud SentinelResource public sentinel new id

1. sentinel降级方法和主方法 public 且 返回值、参数 必须一致的情况下,必须加【BlockException blockException】参数

2、业务降级方法和主方法 public 且 返回值、参数 必须一致,Throwable参数可加可不加

@RequestMapping("/consumer/fallback/{id}")
@SentinelResource(value = "orderFallback",
        fallback = "businessEx",
        blockHandler = "sentinelEx",
        exceptionsToIgnore = {IllegalArgumentException.class})
public CommonResult<Payment> fallback(@PathVariable Long id) {
    CommonResult<Payment> result = restTemplate.getForObject(SERVICE_URL + "/paymentSQL/" + id,
            CommonResult.class, id);
    if (id == 4) {
        throw new IllegalArgumentException("【不受任何降级异常管控,走正常java异常】");
    }
    if (result.getData() == null) {
        throw new NullPointerException("该ID没有对应记录,空指针异常");
    }
    return result;
}

//sentinel 熔断限流异常
public CommonResult<Payment> sentinelEx(Long id, BlockException blockException) {
    Payment payment = new Payment(id, "null");
    return new CommonResult<>(445, "【sentinel降级异常】" + blockException.getMessage(), payment);
}

//业务异常
public CommonResult<Payment> businessEx(Long id, Throwable e) {
    Payment payment = new Payment(id, "null");
    return new CommonResult<>(505, "【业务降级异常】"
            + e.getMessage(), payment);
}

标签:降级,CommonResult,springcloud,SentinelResource,public,sentinel,new,id
From: https://www.cnblogs.com/goodluckxiaotuanzi/p/18350566

相关文章

  • SpringCloud服务注册与发现的实现原理
    SpringCloud是一个分布式系统开发的框架,其中的服务注册与发现是其核心功能之一。在分布式系统中,服务的注册与发现是非常重要的,它可以帮助系统自动地发现和管理各个服务之间的依赖关系,提高系统的可扩展性和可靠性。SpringCloud基于Netflix的开源组件Eureka来实现服务的注册......
  • SpringCloud Gateway
    基于从前的项目:https://www.cnblogs.com/xsj1989/p/18338930参考文章:https://blog.csdn.net/hong161688/article/details/140812734官网文档:https://cloud.spring.io/spring-cloud-gateway/reference/html/新建一个Module,cloud-gateway-centerpom引入包<!--SpringCloud......
  • Redis-Sentinel部署记录
    目录Sentinel哨兵模式介绍Sentinel状态持久化Sentinel作用Sentinel工作方式(每个Sentinel实例都执行的定时任务)三个定时监控任务Sentinel搭建过程所有主机创建sentinel目录所有主机创建sentinel配置文件启动sentinel模拟主库宕机Sentinel常用命令PINGSENTINELmasterSENTINELslave......
  • sentinel限流中阈值类型介绍
    限流阈值类型是指在进行限流时所依据的不同维度或条件。Sentinel支持多种阈值类型,每种类型适用于不同的场景。以下是一些主要的阈值类型:直接QPS限流(QPSThreshold)这是最简单的限流方式,直接根据每秒请求数(QueriesPerSecond,QPS)来设置阈值。例如,你可以设置一个资源的......
  • sentinel限流并发线程数限流 与 直接QPS限流 区别
    发线程数限流和直接QPS限流是Sentinel中两种不同的限流策略,它们分别从不同的角度来控制系统的流量和负载。下面详细解释这两种限流的区别:并发线程数限流(ConcurrencyLevelThreshold)定义:并发线程数限流关注的是某一时刻正在执行的请求的数量。当一个请求开始执行并......
  • 从0到1:穿透 SpringCloud 工业级 底座工程的架构和实操,让自己实力猛增
    文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完成职业升级,薪......
  • sentinel管理后台
    在上文中,我们学习了如何在应用中集成sentinel,并定义资源,但我们仍需要为资源定义规则。在应用日常运行过程中,当发现资源需要被限流,在项目中通过代码定义规则、验证、发布,这个过程费时费力,亟需一种更加便捷的运维工具。sentinel中提供了单独部署的控制台应用:sentineldash......
  • SpringCloud组件
    SpringCloud是基于SpringBoot的分布式系统开发工具,提供了一系列开箱即用的组件,旨在帮助开发人员快速构建和管理云原生应用程序。以下是一些关键的SpringCloud组件及其功能概述:1.Eureka功能:服务发现和注册中心。Eureka帮助服务消费者自动发现和调用服务提供者。简介:Eur......
  • 【Redis 进阶】哨兵 Sentinel(重点理解流程和原理)
    Redis的主从复制模式下,一旦主节点由于故障不能提供服务,需要人工进行主从切换,同时大量的客户端需要被通知切换到新的主节点上,对于上了一定规模的应用来说,这种方案是无法接受的,于是Redis从2.8开始提供了RedisSentinel(哨兵)加个来解决这个问题。一、基本概念由于对Red......
  • SpringCloud添加跨域配置
    SpringCloud添加跨域配置方案1:通过springcloud的globalcors配置当然,这里是使用Markdown格式描述的spring.cloud.gateway.globalcors配置参数含义:spring:cloud:gateway:globalcors:cors-configurations:'[/**]':allo......