Sentinel之服务熔断与@SentinelResource属性进一步说明
・
・
Sentinel整合Ribbon和+@SentinelResource的fallback
・
・
演示图示
・
・
服务提供者
・
・
服务消费者
・
・
改yml
・
・
业务类
・
・
Controller(fallback用于程序运行时的异常,blockHanlder用于管理配置异常)
・
・
测试:
・
・
在配置@SentinelResource时把这两个(fallback 用于程序运行时的异常,blockHanlder 用于管理配置异常)都配置上会怎么样?
・
Controller的改变
・
・
配置Sentinel(为了blockHandler配个限流服务降级)
・
・
测试:
・
1、当我们发送在服务限流的条件内(1S访问一次)有java运行时错误的请求时:(走的是fallback)
・
・
2、当我们发送超过了服务限流的条件内(1S访问二次)有java运行时错误的请求时:(走的是blockHanlder)
・
・
・
・
@SentinelResource 忽略异常属性exceptionsToIgnore
・
・
测试:
・
・
・
・
Sentinel整合OpenFeifn
・
・
演示流程图
・
・
修改Yml
・
・
・
主启动
・
・
Controller的修改
・
・
・
Service服务接口上加上@FeignClient注解
・
・
实现这个接口(fallback兜底方法)
・
・
测试
・
・
正确访问
・
・
・
・
当把9003微服务提供者关闭,错误访问走实现接口类中的兜底方法
・
・
・
熔断框架的比较
・
・
・
・
Sentinel之规则持久化
・
目的:
・ 为了解决当微服务关闭时Sentinel中的服务规则消失的问题
・
・
总体步骤
・
・
・
1、改pom
・
・
2、改Yml
・
・
3、进入Nacos添加配置:
・
・
・
・
・
・
・
・
解释json中的词
・
・
・
・
4、重启8401刷新Sentinel发现流控规则自己已经生成
・
・
到这里配置Sentinel持久化完成
・
・
・
・
・
总结
・
・今天主要就是学习了Sentinel整合Ribbon和+@SentinelResource的fallback、Sentinel整合OpenFign进行服务熔断。
还有就是进一步了解了 @SentinelResource 中的属性,fallback用于程序运行时的异常,blockHanlder用于管理配置异常,如果把fallback、blockHanlder同时配置上,当我们发送在服务限流的条件内(1S访问一次)有java运行时错误的请求时:(走的是fallback),当我们发送超过了服务限流的条件内(1S访问二次)有java运行时错误的请求时:(走的是blockHanlder)。
exceptionsToIgnore属性能够忽略异常处理不走fallback方法。
还有就是Sentinel中配置持久化到Nacos,看上面案例说明。