一,流控配置
资源名
:通常以请求的URL来作为资源名,当然也可以为某个资源单独命名如@SentinelResource注解方式,try-with-resources方式 等等,
阈值类型
:QPS:每秒限制请求数,线程数:每秒总线程的并发数。
均摊阈值
:每秒最大的请求数或者每秒最多的线程总数。
是否集群
:
单机均摊:如上图配置,在集群模式下abc三台机器,abc每台机器每秒放10个请求进来。
总体阈值:如上图配置,在集群模式下abc三台机器,sentinel每秒一共放10个请求进来,但是每台机器处理多少有负载均衡来决定。
流控模式
:
直接:直接限制指定资源。
关联:需要指定一个关联的资源,当关联资源流量大的是时候就会对配置资源限流。
链路:需要指定入口路径,只有入口路径和最后的限制路径一致的条件才会对资源进行限流。
流控效果
:
快速失败:直接拒绝,直接返回限流的错误,当然可以自定义错误码。
Warm Up:热启动,当服务刚启动的时候,不会直接将所有配置的阈值请求一下子全都丢进来,而是慢慢增加请求量,直到配置的阈值峰值。
排队等待:当达到阈值后,不会直接丢球请求返回错误,而是排队等待被消费,当然也可以指定超时时间。
二,熔断自定义返回值
当触发熔断后返回的错误是sentinel的错误,不符合业务系统的规范,所以当触发熔断之后需要返回指定的业务错误码才行。
@Configuration
public class SentinelResponseConfig {
private static String jsonResponse = "{\"code\":\"CF9999\",\"msg\":\"触发熔断,稍后再试\"}";
public