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

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

什么是流量控制


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

作为一个调配器,可以根据需要把随机的请求调整成合适的形状,如下图所示:

fd3a37c829dc4a56842c2e071cbd5d87.png

流量控制设计理念



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


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


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


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


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


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


第一步,创建一个springboot工程


dd7912cede4c4eec9044a9c6aae94dba.png

第二步,引入sentinel依赖

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

image.png


第三步,编写TestController类


55ff6ebf25cc451291bcec67f2bae5f3.png


第四步,编写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);
    }

5c311fd4cfaf459188d487112e1bfcfd.png

@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 "系统繁忙";
        }
    }

388cde8a452843368019bfdeae7eb2ce.png


第六步,测试我们的方法

如果我们正常调用:


e7ed2ecffe2a4c7cb0cbe911986eb755.png


如果我们一次点击超过一秒内两次:


547fd0ab053c4ddfa07e8b2068219dd6.png

仓库地址:

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

相关文章
|
10月前
|
监控 Java 测试技术
实战:Springboot集成Sentinel实现流量控制、熔断降级、负载保护
实战:Springboot集成Sentinel实现流量控制、熔断降级、负载保护
|
自然语言处理 监控 Cloud Native
精华推荐 |【深入浅出Sentinel原理及实战】「原理探索专题」完整剖析Alibaba微服务架构体系之轻量级高可用流量控制组件Sentinel(1)
精华推荐 |【深入浅出Sentinel原理及实战】「原理探索专题」完整剖析Alibaba微服务架构体系之轻量级高可用流量控制组件Sentinel(1)
695 0
精华推荐 |【深入浅出Sentinel原理及实战】「原理探索专题」完整剖析Alibaba微服务架构体系之轻量级高可用流量控制组件Sentinel(1)
|
监控 Dubbo 搜索推荐
Spring Cloud Alibaba——Sentinel流量控制框架
Sentinel被称为分布式系统的流量防卫兵,是阿里开源流控框架,从服务限流、降级、熔断等多个维度保护服务,Sentinel提供了简洁易用的控制台,可以看到接入应用的秒级数据,并且可以在控制台设置一些规则保护应用,它比Hystrix支持的范围广,如Spring Cloud、Dubbo、gRPC都可以整合。 资源是Sentinel最关键的概念,遵循Sentinel API的开发规范定义资源,就能将应用保护起来。 而规则可以通过控制面板配置,也可以和资源联合起来,规则可以在控制台修改并且即时生效。
452 4
|
10天前
|
监控 Java 应用服务中间件
替代 Hystrix,Spring Cloud Alibaba Sentinel 快速入门
替代 Hystrix,Spring Cloud Alibaba Sentinel 快速入门
|
16天前
|
监控 Java API
深入解析 Spring Cloud Sentinel:分布式系统流量控制与熔断降级的全面指南
深入解析 Spring Cloud Sentinel:分布式系统流量控制与熔断降级的全面指南
25 0
深入解析 Spring Cloud Sentinel:分布式系统流量控制与熔断降级的全面指南
|
5天前
|
自然语言处理 监控 开发者
springCloud之Sentinel流量路由、流量控制、流量整形、熔断降级
springCloud之Sentinel流量路由、流量控制、流量整形、熔断降级
10 0
|
2月前
|
监控 Java Nacos
【分布式流控组件 Sentinel 快速入门】——图文详解操作流程(上)
【分布式流控组件 Sentinel 快速入门】——图文详解操作流程
183 0
【分布式流控组件 Sentinel 快速入门】——图文详解操作流程(上)
|
2月前
|
SQL SpringCloudAlibaba Sentinel
【八】SpringCloud Alibaba之整合Sentinel(实现流量控制3)
【八】SpringCloud Alibaba之整合Sentinel(实现流量控制3)
47 2
|
2月前
|
SpringCloudAlibaba Java 测试技术
【六】SpringCloud Alibaba之整合Sentinel(实现流量控制)
【六】SpringCloud Alibaba之整合Sentinel(实现流量控制)
64 1
|
2月前
|
SpringCloudAlibaba Java 测试技术
【七】SpringCloud Alibaba之整合Sentinel(实现流量控制2)
【七】SpringCloud Alibaba之整合Sentinel(实现流量控制2)
49 1