Spring Cloud Alibaba - Sentinel入门案例(二)(流控规则 | 直接 / 关联 / 链路 / 快速失败 / Warm Up / 排队等待)
回溯
Sentinel 基本概念
- 资源:就是Sentinel要保护的东西,它可以是 Java 应用程序中的任何内容,可以是一个服务,也可以是一个方法,甚至可以是一段代码。
- 规则:就是用来定义如何进行保护资源的,作用在资源之上, 定义以什么样的方式保护资源,主要包括流量控制规则、熔断降级规则以及系统保护规则。
若对 Sentinel 还没有一个认知,可以参考前面的博文。
本文主要讲解 Sentinel 容错功能之一 流量控制 。
正文
环境准备
需要启动好 Sentinel 控制台,以及监控一个消费者。
若对这一步有疑虑,请参考SpringCloud Alibaba - Sentinel入门案例(一)。
流控规则介绍
流量控制,其原理是监控应用流量的QPS(每秒查询率) 或并发线程数等指标,当达到指定的阈值时
对流量进行控制,以避免被瞬时的流量高峰冲垮,从而保障应用的高可用性。
简单介绍
当我们点击 簇点链路 选择相对应的资源名,点击 +流控,就可为需要的资源添加流控规则。
以下做一个简单的介绍:
- 资源名:唯一名称,默认是请求路径,可自定义(后续讲解)。
- 针对来源:指定对哪个微服务进行限流,默认指default,意思是不区分来源,全部限制。
- 阈值类型/单机阈值:QPS(每秒请求数量): 当调用该接口的QPS达到阈值的时候,进行限流 / 线程数:当调用该接口的线程数达到阈值的时候,进行限流 。
- 是否集群:是否集群配置 。
对 阈值类型 / 单机阈值做 测试
对于简单的配置而言,有两个默认项:
- 流控模式:直接 。
- 流控效果:快速失败 。
至于什么是流控模式,什么是流控效果,后续会讲解。
首先我们选择QPS,单机阈值填写2,点击新增 。
添加成功后我们可以到流控规则里面查看我们设置的流控。
由于这边我们QPS选择了阈值为2,意思是。这个请求路径,每秒只允许2个请求。超出会使用流控效果。而简单配置的流控效果是快速失败。
配置完成,当我快速请求服务的时候,会出现 Blocked by Sentinel (flow limiting) ps(这个可更改,后续讲解)。
证明 流控规则 生效。
接下来