Sentinel 进阶教程 - 基础篇
大纲
流量规则使用
流量规则的介绍
Sentinel 能够对流量进行控制,主要是监控应用的 QPS 流量或者并发线程数等指标,如果达到指定的阈值时,就会对流量进行控制,以避免服务被瞬时的高并发流量击垮,保证服务的高可靠性。
配置参数 | 配置说明 |
---|---|
资源名 | 资源的唯一名称,默认就是请求的接口路径(URL),可以自行修改。同一微服务应用内,资源名必须唯一。不同微服务应用之间,资源名可以重复。 |
针对来源 | 具体针对某个微服务进行限流,默认值为 default ,表示不区分来源,全部限流。 |
阈值类型 | QPS 表示通过 QPS 进行限流,并发线程数表示通过并发线程数限流。 |
单机阈值 | 与阈值类型组合使用。如果阈值类型选择的是 QPS,表示当调用接口的 QPS 达到阈值时,进行限流操作。如果阈值类型选择的是并发线程数,则表示当调用接口的并发线程数达到阈值时,进行限流操作。 |
是否集群 | 选中则表示集群环境,不选中则表示非集群环境。 |
流空模式的类型
Sentinel 提供三种流控模式,包括直接、关联、链路。
直接流控模式
这是 Sentinel 默认的流控模式,当接口达到限流条件时,直接开启限流功能。
当快速多次调用 http://localhost:8080/testA
接口时,会触发限流,并默认返回 Blocked by Sentinel (flow limiting)
的提示信息。
关连流控模式
当关联的资源达到阀值时,就限流当前接口。比如,当与 A 接口关联的 B 接口达到阀值后,就限流 A 接口自己。
通过 JMeter 让多个线程并发调用 http://localhost:8080/testB
接口,然后再简单调用一次 http://localhost:8080/testA
接口,发现 /testA
接口会返回 Blocked by Sentinel (flow limiting)
的提示信息。这说明大量线程高并发访问 /testB
接口时,导致 /testA
接口也触发了限流。