淘宝客网站开发,网站建设项目进度计划,创意设计图片,怎么推广自己的公众号前言#xff1a; 所有的准备工作都做好了#xff0c;就可以进入到Sentinel的具体使用上了#xff0c;这里还需要一个测试工具叫做jmeter#xff0c;是一个很好的测试工具#xff0c;专门针对并发的#xff0c;准备好以后#xff0c;就可以直接开干了。
一、Sentinel作用…前言 所有的准备工作都做好了就可以进入到Sentinel的具体使用上了这里还需要一个测试工具叫做jmeter是一个很好的测试工具专门针对并发的准备好以后就可以直接开干了。
一、Sentinel作用 Sentinel主要是为了解决雪崩问题。微服务的雪崩就是当一个服务出现问题其它调用问题服务的服务也会出现问题从而一传十十传百导致整个系统崩溃解决微服务雪崩的常见方式有四种 超时处理请求超过一定时间就返回报错信息。 仓壁模式也叫做线程隔离限制每个业务使用线程的数量减少对其它业务的影响。 熔断降级统计请求异常的比例异常比例达到阈值之后会熔断该业务拦截一切访问该业务的请求。 流量控制对业务的QPS进行限制避免服务因为流量激增而鼓掌。 二、控制台基本使用
1、进入到Sentinel控制台页面尝试使用jmeter并发访问某可接口 可以在实时监控里面看到QPS变化的折线图也可以看到右边有相关数据的统计。
2、点击簇点链路可以为不同的url设置流控规则 流控规则基本上分为两种一个是QPS、一个是并发线程数 1QPS在后面的单机阈值里面的设置最大的QPS值就是每秒钟允许的最大并发量这种模式下只要并发量查过最大阈值都会被拒绝返回的结果是429表示被限流。
2并发线程数在后面的单机阈值里面的设置最大线程数量每秒钟最多有两个线程支持你的请求。这种模式下最大的QPS可能很大但是不稳定时高时低但是超过线程能处理的能力范围之后就会出现拒绝也就是限流。
3、高级选项 在新增流控规则中点击高级选项出现流控模式有三种 直接模式统计当前请求的资源当超过阈值之后对当前资源直接限流是默认模式。 关联模式在某些业务场景下限流也需要有权重比如修改订单和查询订单都是需要对订单进行操作这会导致锁的竞争但是修改订单的权重显然大于查询因此当修改订单的请求到达阈值时需要对查询订单做限流。大致一是就是我这里都忙不过来了你就不要来添堵了。 链路模式在创建订单和查询订单时都会去查询商品服务但是查询订单的并发量往往比较高这时就需要给这个查询链路加上一个并发的上线不能让它的QPS无限放大从而影响到订单的创建。 另外还有流控效果也分为三种 快速失败到达阈值之后新的请求会立即拒绝并且抛出异常这是默认的方式。 Warm Up:预热模式主要是以防止服务的冷启动服务刚启动时就有大量的请求进入直接干蹦服务高开始阈值大概是最大阈值的三分之一会设置一个预热时间在这个时间段内阈值会慢慢加大直到达到最大阈值那超过阈值的请求也会理解被拒绝。 排队等待 将所有的请求放到一个队列里面根据QPS的大小计算出请求间隔的时间例如QPS5那么1s钟需要执行5个请求每个请求就是200ms第二个请求需要等待第一个请求执行完那么必须要等待200ms以此类推后续的请求进来之后都会计算自己的预计等待时间如果预计等待时间比设置的最大等待时间要大那么该请求就会被拒绝。 最后还有一种热点规则精确到了参数例如商品A查询的QPS是10而商品B的QPS是2那么商品A相对于商品B来说是热点数据我们可以通过对他的id设置限流说实话这个有点针对的感觉查询商品用的是一个接口只是参数不一样对不同的参数可以设置限流但是需要注意的是 热点参数对默认的SpringMVC资源无法生效需要在方法上添加注解SentinelResource(随便起个名字)