springcloud3 nacos,sentinel,ribbon,openfegin等整合案例2[fallback降级]

一 说明

1.1 说明

本案例在https://blog.csdn.net/u011066470/article/details/129636493 的基础上进行操作,通过消费者访问,发现,访问的消息不存在会报404空白页

 1.2 解决办法

针对以上反应的问题,通过设定fallback实现降级操作。

1.2.1 pom配置

    <!--SpringCloud ailibaba sentinel -->
    <dependency>
      <groupId>com.alibaba.cloud</groupId>
      <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
    </dependency>

1.2.2 配置fallback

 

    @GetMapping(value = "/consumer/payment/nacos/{id}")
    @SentinelResource(value = "fb",fallback = "handlerFallback") //fallback只负责业务异常
    public  CommonResult<Payment> paymentInfo(@PathVariable("id") Long id)
    {
        CommonResult<Payment> list= restTemplate.getForObject(serverURL+"/payment/get/"+id,CommonResult.class);
        if (id == 4) {
            throw new IllegalArgumentException ("IllegalArgumentException,非法参数异常....");
        }else if (list.getData() == null) {

            throw new NullPointerException ("NullPointerException,该ID没有对应记录,空指针异常");
        }
        System.out.println("list:"+list);
        return  list;
    }
    //本例是fallback
    public CommonResult handlerFallback(@PathVariable  Long id,Throwable e) {
        Payment payment = new Payment(id,"null");
        System.out.println("======================================================= fallback 降级.............");
        return new CommonResult<>(444,"兜底异常handlerFallback,exception内容  "+e.getMessage(),payment);
    }

1.2.3 测试

1.启动nacos,

2.启动应用

 3.正常访问

1.正常访问

2.访问数据不存在,开始报空指针异常,然后执行fallback异常的处理策略

 

3.访问参数id为4,参数非法异常,然后执行fallback异常的处理策略

 1.2.4 总结

总结: fallback只负责业务异常
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值