Sentinel通过流量控制(flow control)以及熔断降级来保护系统资源
QPS超过阈值直接失败
流量控制(flow control),其原理是监控应用流量的 QPS 或并发线程数等指标,当达到指定的阈值时对流量进行控制,以避免被瞬时的流量高峰冲垮,从而保障应用的高可用性。
QPS:Queries-per-second,每秒资源被访问的次数
当被访问资源的QPS超过阈值,直接进行限流(限制访问),从而保护资源,
下图的簇点链路-流控
针对来源 default就是默认 什么都可以 qps 单击阈值为5 就是一秒钟可以访问五次多了不行
流控模式直接 快速失败 直接选用当前项目 直接失败,没有等待一说
线程数超过阈值直接失败
五十个用户访问一个浏览器,五十个用户就是一个线程、
下图表示每秒只允许访问一个线程
Jemeter使用步骤
jmeter.bat启动 可以切换中文
1.文件-新建测试计划
2:添加线程组
3:添加http请求
4:添加结果观察
5:发送请求
6.在查看树查看相应结果
QPS超过阈值关联失败
当test6到达阈值时,test5被保护起来
线程超过阈值关联失败
当test6访问线程数到达阈值时,test5被保护,限制访问
QPS超过阈值链路失败
两个资源发同一个请求,只限制一个请求,当这个请求被限制,则保护主节点,另一个资源不被限制
feign.sentinel.enabled=true 开启feign跟sentinel联合起来
示例:test2 test3请求一样
@sentinelResoource注解 起个名字
当test2一秒访问次数大于1就会失败 test3不受影响。
流控效果-Warm-up
Warm Up(
RuleConstant.CONTROL_BEHAVIOR_WARM_UP
)方式,即预热/冷启动方式。当系统长期处于低水位的情况下,当流量突然增加时,直接把系统拉升到高水位可能瞬间把系统压垮。通过"冷启动",让通过的流量缓慢增加,在一定时间内逐渐增加到阈值上限,给冷系统一个预热的时间,避免冷系统被压垮
就是说下图 480个阈值,他不是开始就是480个 他是慢慢涨到480个