Sentinel的快速入门,三分钟带你体验流量控制

本文介绍了Sentinel流量控制的概念及其设计理念,并通过一个SpringBoot应用展示了如何配置和使用Sentinel进行流量限制。在实践中,我们创建了一个简单的SpringBoot工程,引入Sentinel依赖,设置QPS限流规则,当请求超过设定阈值时,系统将自动进行限流操作,以保护系统稳定。通过示例代码和测试方法,读者可以快速了解Sentinel的流量控制效果。

什么是流量控制

流量控制在网络传输中是一个常用的概念,它用于调整网络包的发送数据。然而,从系统稳定性角度考虑,在处理请求的速度上,也有非常多的讲究。任意时间到来的请求往往是随机不可控的,而系统的处理能力是有限的。我们需要根据系统的处理能力对流量进行控制。Sentinel
作为一个调配器,可以根据需要把随机的请求调整成合适的形状,如下图所示:

在这里插入图片描述

流量控制设计理念

流量控制有以下几个角度:

资源的调用关系,例如资源的调用链路,资源和资源之间的关系;

运行指标,例如 QPS、线程池、系统负载等;

控制的效果,例如直接限流、冷启动、排队等。

Sentinel 的设计理念是让您自由选择控制的角度,并进行灵活组合,从而达到想要的效果。

上面介绍完了,下面带大家来快速体验一下sentinel,查看一下他的效果。

第一步,创建一个springboot工程

在这里插入图片描述

第二步,引入sentinel依赖

 		<dependency>
            <groupId>com.alibaba.csp</groupId>
            <artifactId>sentinel-core</artifactId>
            <version>1.7.2</version>
        </dependency>

在这里插入图片描述

第三步,编写TestController类

在这里插入图片描述

第四步,编写sentinel的相关方法

 @PostConstruct
    public void initFlowRules() {

        List<FlowRule> rules = new ArrayList<>();

        FlowRule flowRule = new FlowRule();

        flowRule.setResource("testSentinel");

        flowRule.setGrade(RuleConstant.FLOW_GRADE_QPS);

        //限流一秒钟超过两次
        flowRule.setCount(2);

        rules.add(flowRule);

        FlowRuleManager.loadRules(rules);
    }

在这里插入图片描述
@PostConstruct这个注解的作用就是在这个TestController类被实例化的时候调用这个方法,

flowRule.setCount(2);

这里的意思就是控制一次请求在一秒内只能调用两次

第五步,编写测试方法

  @GetMapping("/hello")
    public String hello() {

        try(Entry entry =  SphU.entry("testSentinel")) {
            return "hello sentinel";
        } catch (BlockException e) {
            e.printStackTrace();
            return "系统繁忙";
        }


    }

在这里插入图片描述

第六步,测试我们的方法

如果我们正常调用:
在这里插入图片描述
如果我们一次点击超过一秒内两次:
在这里插入图片描述
仓库地址:

https://gitee.com/WangFuGui-Ma/sentinel-quickstart

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

掉头发的王富贵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值