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 流量控制快速入门的主要内容,如果未能解决你的问题,请参考以下文章

Sentinel从入门到应用

#私藏项目实操分享#Alibaba中间件技术系列「Sentinel技术专题」分布式系统的流量防卫兵的基本介绍(入门源码介绍)

Spring Cloud 10Sentinel入门

Spring Cloud Alibaba | Sentinel:分布式系统的流量防卫兵基础实战

Java面试基础知识,从入门到核心实战

SpringCloud系列——流量控制组件Sentinel实战