请选择 进入手机版 | 继续访问电脑版

Sentinel整合Ribbon做服务熔断

[复制链接]
小小海 发表于 2021-1-1 18:33:06 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
搭建两个服务提供者
9003和9004
搭建一个服务调用这
84
启动nacos和Sentinel
调用者焦点代码
  1. public static final String SERVICE_URL = "http://nacos-payment-provider";    @Resource    private RestTemplate restTemplate;    @RequestMapping("/consumer/fallback/{id}")    //@SentinelResource(value = "fallback") //没有设置    //@SentinelResource(value = "fallback",fallback = "handlerFallback") //fallback只负责业务异常    //@SentinelResource(value = "fallback",blockHandler = "blockHandler") //blockHandler只负责sentinel控制台设置违规    @SentinelResource(value = "fallback",fallback = "handlerFallback",blockHandler = "blockHandler"/*, exceptionsToIgnore = {IllegalArgumentException.class}*/)    //若blockHandler和fallback都举行了设置,则被限流降级而抛出BlockException时只会进入blockHandler中处理处罚逻辑    public CommonResult fallback(@PathVariable Long id) {        CommonResult result = restTemplate.getForObject(SERVICE_URL + "/paymentSQL/"+id, CommonResult.class,id);        if (id == 4) {            throw new IllegalArgumentException ("IllegalArgumentException,非法参数异常....");        }else if (result.getData() == null) {            throw new NullPointerException ("NullPointerException,该ID没有对应纪录,空指针异常");        }        return result;    }    //fallback    public CommonResult handlerFallback(@PathVariable  Long id,Throwable e) {        Payment payment = new Payment(id,"null");        return new CommonResult(444,"兜底异常handlerFallback,exception内容  "+e.getMessage(),payment);    }    //blockHandler    public CommonResult blockHandler(@PathVariable  Long id,BlockException blockException) {        Payment payment = new Payment(id,"null");        return new CommonResult(445,"blockHandler-sentinel限流,无此流水: blockException  "+blockException.getMessage(),payment);    }
复制代码
这里服务熔断主要也就是@SentinelResource注解的设置,单配fallback和blockHandler是很好理解的,但是两个都设置的情况S下,Sentinel也做了降级处理处罚的情况下那么只会进入blockHandler中处理处罚逻辑

来源:https://blog.csdn.net/CSDN877425287/article/details/111993590
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题

专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )