{
"resource": "yizhanshi-auth",
"count": 500,
"grade": 1,
"limitApp": "default",
"strategy": 0,
"controlBehavior": 0
},
Sentinel 是阿里巴巴开源的面向分布式服务架构的高可用性保障组件,主要用于服务的流量防卫,如流量控制、熔断降级、系统负载保护等。下面是这个限流配置每个字段的解释:
-
resource: 这是被保护的资源名,对应于需要限流的微服务或具体操作,这里的
"yizhanshi-auth"
表示这个限流规则应用于标识为yizhanshi-auth
的资源。 -
count: 这是阈值,根据
grade
的不同,这里的含义也会有所不同。在这里,由于grade
为 1(QPS 模式),这个阈值表示每秒允许通过的请求数量,设置为500
表示yizhanshi-auth
资源每秒最多只能处理 500 个请求。 -
grade: 这是限流的模式,
1
表示 QPS(每秒查询率)模式。Sentinel 还支持其他模式,如线程数限流(值为 0)。 -
limitApp: 这是流控针对的调用来源,
"default"
表示不区分调用来源,对所有调用来源的请求都进行限流。如果设置为具体的服务名称,则只对来自该服务的请求进行限流。 -
strategy: 这是调用关系限流策略,
0
表示直接限流(即直接对访问yizhanshi-auth
的请求进行限流),还有其他模式如链路限流(值为 1)等,用于在复杂的调用链中进行精细化流量控制。 -
controlBehavior: 这是流量控制效果,
0
表示快速失败,即当请求达到限流阈值时,直接快速拒绝多余的请求,返回一个快速失败的响应。Sentinel 还支持其他控制效果,如预热模式、排队等待等。
通过这个配置,你可以对 yizhanshi-auth
资源实施每秒不超过 500 次的请求处理限制,超出阈值的请求将会被快速失败处理,从而保护系统不会因为过载而出现问题。这种方式非常适合对系统进行防护,尤其是在流量高峰期,可以有效地控制系统负载,避免服务崩溃。