进行熔断的条件是:慢调用的比例达到阈值,QPS大于最小请求数  待超过熔断时长后,如果还是满足熔断条件(慢调用的比例达到阈值,QPS大于最小请求数),则会继续进行熔断 
 
进行熔断的条件是:异常比例达到阈值,QPS大于最小请求数  待超过熔断时长后,如果还是满足熔断条件(异常比例达到阈值,QPS大于最小请求数),则会继续进行熔断 
 
进行熔断的条件是:异常数达到阈值,QPS大于最小请求数  待超过熔断时长后,如果还是满足熔断条件(异常数达到阈值,QPS大于最小请求数),则会继续进行熔断 
 
 
 
 
 
 
 
这样当每秒钟的请求数 大于5,并且每分钟只要有一个是慢调用 就进行熔断降级 
 
 
 
 
 
 
 
 
 
这样配置表示当每秒钟的请求数 达到5,并且**每分钟异常的比例大于20%**则会出现熔断降级 
 
 
 
 
这样,当吗,每秒钟的请求数 到达5,并且每分钟异常数量 大于5,则会进行熔断降级 
 
 
 
 
 
 
 
使用@SentinelResource注解来制定被热点限流的接口以及处理热点限流的接口     @GetMapping ( "/news" ) @SentinelResource ( value =  "news" ,  blockHandler =  "hot" )  public  String  news ( @RequestParam ( "id" )  String  id,  @RequestParam ( "type" )  String  type)  { return  "id="  +  id +  " type="  +  type; } 
接受的参数需要与被热点限流的接口的参数一致,并且有一个处理异常的参数     public  String  hot ( String  id,  String  type,  BlockException  blockException)  { return  "id"  +  id +  "type"  +  type +  "热点限流处理" ; } 
 
 
这个配置表示对参数id进行热点限流,只要每秒请求次数超过2就触发限流 
 
 
 
原因是对参数id设置了热点限流的触发条件为每秒请求数为2 
 
原因是对参数id=2设置了热点限流的触发条件为每秒请求数为100 
 
 
 
简单来说这个系统规则就是对整个系统的所有资源进行统一管理,共享一套限流规则 ! 
 
 
 
这样配置就表示,整个系统的每秒请求数超过2就会进行限流 
 
 
 
需要注意:方法必须是static,并且参数类型和返回的类型 必须与被处理的方法一致 package  com. sun. springcloud. handler ; import  com. alibaba. csp. sentinel. slots. block.  BlockException ; 
public  class  GlobalBlockHandler  { public  static  String  blockHandler ( String  id,  BlockException  e)  { return  "GlobalBlockHandler "  +  id +  " 服务不可用" ; } 
}     @GetMapping ( "/system" ) @SentinelResource ( value =  "system" ,  blockHandlerClass =  GlobalBlockHandler . class ,  blockHandler =  "blockHandler" ) public  String  system ( @RequestParam ( value =  "id" ,  required =  false )  String  id)  { return  "id"  +  id +  "全局限流未激活" ; } 
 
 
 
 
    private  int  count =  0 ; @GetMapping ( "/system" ) @SentinelResource ( value =  "system" ,  blockHandlerClass =  GlobalBlockHandler . class ,  blockHandler =  "blockHandler" , fallbackClass =  GlobalFallbackHandler . class ,  fallback =  "fallbackHandlerMethod1" ) public  String  system ( @RequestParam ( value =  "id" ,  required =  false )  String  id)  { if  ( ++  count %  5  ==  0 )  { throw  new  RuntimeException ( "出现异常!!!" ) ; } return  "id"  +  id +  "全局限流未激活" ; } 
方法需要是static 参数类型和返回类型 与被处理的方法类型一致package  com. sun. springcloud. handler ; 
public  class  GlobalFallbackHandler  { public  static  String  fallbackHandlerMethod1 ( String  id,  Throwable  throwable)  { return  "fallback处理异常!"  +  "id:"  +  id; } 
} 新增两个属性,一个是全局异常处理类的Class对象,一个是处理异常的方法 
 
 
正常情况:每秒请求数不超过2 限流情况:每秒请求数超过2,被全局限流处理类中的方法处理 异常情况:每5次抛出一次异常,交给全局异常处理器处理