Sentinel(哨兵)是应对雪崩问题所出现的微服务流量控制组件,今天我们学习对于雪崩的解决方案四大方案(超时处理,仓壁模式,断路器【熔断机制】,限流模式)之一。
限流模式。
本次所用环境为springboot,springcloud,nacos注册中心
运用Jmeter进行并发测试
在进行连接Sentinel Dashboard的过程中出现8080端口被占用问题,
打开cmd,输入netstat -ano|findstr 端口号 ,查看端口对应的pid。
在cmd中输入命令: taskkill /pid 占用进程的pid -f,即可直接结束进程。
成功进入Sentinel,启动项目,拿取数据。
接下来不得不提这个界面给我的既视感了,
它与人人开源的renren-fast自动生成界面太像了。看样子这个监控机制真是殊致同归。
接下来进入第一步关联模式,关联模式适用于:
比如用户支付时需要修改订单状态,同时用户要查询订单。查询和修改操作会争抢数据库锁,产生竞争。业务需求是优先支付和更新订单的业务,因此当修改订单业务触发阈值时,需要对查询订单业务限流。
在idea编写两个接口并通过JMeter并发测试。结果显而易见。
由此我分析的出关联模式满足下面两个条件
1.两个有竞争关系的资源
2.两者优先级高低不同,对优先级低做限流。
书接上回,立马尝试链路模式,
链路模式:是只针对从指定链路访问到本资源的请求做统计,判断是否超过阈值。
如此我们学完三种流控模式。
直接模式,谁触发限流就对谁做限流。
关联模式,有两个相互竞争的资源,对低优先级的做限流
链路模式, 阈值统计,对不同来源的请求做限流。