提供了流量控制、熔断降级、系统负载保护等多个维度来保障服务之间的稳定性
作用:系统保护:流量保护、熔断、降级(类似hystrix)
备选响应,返回预备的结果(备胎)
10次 8次错,或者响应时间特别慢,直接给个降级的备胎
调用方熔断—百分之80失败率,不产生远程调用,直接返回备选结果(写的fallback)
服务端熔断—直接返回备选结果
sentinel两个基本概念
服务保护:受保护的对象:资源 rest api、method、service
推责:在什么条件下开启保护
熔断降级+流量控制
QPS流量控制:
当 QPS 超过某个阈值的时候,则采取措施进行流量控制。流量控制的效果包括以下几种:直接拒绝、 Warm Up、匀速排队。
直接拒绝( RuleConstant.CONTROL_BEHAVIOR_DEFAULT )方式是默认的流量控制方式,当QPS超过任意规则的阈值后,新的请求就会被立即拒绝,拒绝方式为抛出 FlowException 。这种方式适用于对系统处理能力确切已知的情况下,比如通过压测确定了系统的准确水位时。
Warm Up( RuleConstant.CONTROL_BEHAVIOR_WARM_UP )方式,即预热/冷启动方式。当系统长期处于低水位的情况下,当流量突然增加时,直接把系统拉升到高水位可能瞬间把系统压垮。通过"冷启动",让通过的流量缓慢增加,在一定时间内逐渐增加到阈值上限,给冷系统一个预热的时间,避免冷系统被压垮。
匀速排队( RuleConstant.CONTROL_BEHAVIOR_RATE_LIMITER )方式会严格控制请求通过的间隔时间,也即是让请求以均匀的速度通过,对应的是漏桶算法。
添加规则,比如1秒之内允许多少个请求过来
流量控制有以下几个角度:
资源的调用关系,例如资源的调用链路,资源和资源之间的关系;
运行指标,例如 QPS、线程数等;
控制的效果,例如直接限流(快速失败)、冷启动(Warm Up)、匀速排队(排队等待)等。
Sentinel 的设计理念是让您自由选择控制的角度,并进行灵活组合,从而达到想要的效果。

在控制台添加更简便,页面上添加规则,下发到服务
sentinel控制台规则需持久化,不然重启则消失