Sentinel 流量控制快速入门
Posted 流楚丶格念
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sentinel 流量控制快速入门相关的知识,希望对你有一定的参考价值。
文章目录
流量控制
雪崩问题虽然有四种方案,但是限流是避免服务因突发的流量而发生故障,是对微服务雪崩问题的预防。
能预防最好,所以我们下面先介绍一下流量控制:
1.簇点链路
当请求进入微服务时,首先会访问DispatcherServlet(前置控制器),然后进入Controller、Service、Mapper,这样的一个调用链就叫做簇[cù]点链路。
簇点链路中被监控的每一个接口就是一个资源。
默认情况下sentinel会监控SpringMVC的每一个端点(Endpoint,也就是controller中的方法),因此SpringMVC的每一个端点(Endpoint)就是调用链路中的一个资源。
小扩展:DispatcherServlet是前置控制器,配置在web.xml文件中的。拦截匹配的请求,Servlet拦截匹配规则要自己定义,把拦截下来的请求,依据相应的规则分发到目标Controller来处理,是配置spring MVC的第一步。
DispatcherServlet是前端控制器设计模式的实现,提供Spring Web MVC的集中访问点,而且负责职责的分派,而且与Spring IoC容器无缝集成,从而可以获得Spring的所有好处。
例如,我们访问的order-service中的OrderController中的端点:/order/orderId
在Sentinel控制台中就会有显示(没有第一次访问,请求不会在这里显示)
流控、熔断等都是针对簇点链路中的资源来设置的,因此我们可以点击对应资源后面的按钮来设置规则:
规则 | 说明 |
---|---|
流控 | 流量控制 |
降级 | 降级熔断 |
热点 | 热点参数限流,是限流的一种 |
授权 | 请求的权限控制 |
我们先来一个快速入门,再对每一个规则进行详细讲解配置
2.快速入门
2.1.示例
点击资源/order/orderId后面的流控按钮,就可以弹出表单。
表单中可以填写限流规则,如下:
其含义是限制 /order/orderId这个资源的单机QPS为1,即每秒只允许1次请求,超出的请求会被拦截并报错。
如果咱么请求太快的话,他就会进行流量控制,显示访问,例如下面在浏览器中玩命访问,就会返回错误信息
2.2.练习:
需求:给 /order/orderId这个资源设置流控规则,QPS不能超过 5,然后测试。
1)首先在sentinel控制台添加限流规则
2)利用jmeter测试
开启20个线程访问20次
设置请求信息
20个用户,2秒内运行完,QPS是10,超过了5.
运行测试
注意,不要点击菜单中的执行按钮来运行。
结果:
可以看到,成功的请求每次只有5个
以上是关于Sentinel 流量控制快速入门的主要内容,如果未能解决你的问题,请参考以下文章
#私藏项目实操分享#Alibaba中间件技术系列「Sentinel技术专题」分布式系统的流量防卫兵的基本介绍(入门源码介绍)