专栏首页技术开发——你我他基于Sentinel Dashboard来实现流控配置

基于Sentinel Dashboard来实现流控配置

目标:Sentinel的基本应用 工具:IDEA--2020.1、Sentinel Maven Spring Boot 学习目标:学习基于Sentinel Dashboard来实现流控配置 本次学习的工程下载链接放到文本最后面

1.创建一个springboot工程导入springcloud相关依赖

<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <scope>runtime</scope>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
        <exclusions>
            <exclusion>
                <groupId>org.junit.vintage</groupId>
                <artifactId>junit-vintage-engine</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
</dependencies>

还有相关的包管理

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring-cloud.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>2.1.1.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>

</dependencyManagement>

2.启动Sentinel Dashboard

3.在application.yml中增加如下配置

spring:
  application:
    name: springboot-sentinel-sample
  cloud:
    sentinel:
      transport:
        dashboard: 127.0.0.1:7777

spring.cloud.sentinel.transport.dashboard指向的是Sentinel Dashboard的服务器地址(我们这里用的是本地地址),可以实现对留空数据的监控和流控规则的分发。

4.提供一个REST接口,代码如下

@RestController
public class DashboardController {

    @GetMapping("/dash")
    private String dash(){
        return "Hello dash";
    }
}

我们先不对他进行资源处理,我们到时候直接去Sentinel Dashboard中进行配置。

5.启动服务,访问http://localhost:8080/dash ,由于没有进行配置流控规则,所以不存在限流行为

此时,我们springcloud集成sentinel的配置完成了,我们进入Sentinel Dashboard这个来实现流控规则的处理吧!

6.访问http://localhost:7777/进入Sentinel Dashboard(账号密码都是sentinel)

成功界面如下

6.进入spring.application.name对应的菜单,访问"簇点链路",在该列表找到/dash这个REST接口的资源名称

7.针对这个资源名称,可以在左右边的操作栏单机"流控"按钮设置流控规则,如下:

为了演示效果,我就把这个单机阈值设置为1。

8.新增完成后,我们再次访问http://localhost:8080/dash接口,当QPS超过1时,就可以看到限流效果,并且获得如下输出

下载链接:sentinel-sample1.rar

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Nacos实现服务端和消费端的注册和发现

    目标:Nacos实现服务端和消费端的注册和发现 工具:IDEA--2020.1、Nacos、云服务器 学习目标:服务端开发和消费端开发 本次学习的工程下载链接放...

    背雷管的小青年
  • Sentinel接入SpringCloud(一)

    目标:手动配置限流资源保护 工具:IDEA--2020.1、Nacos、本地服务器(作为测试) 学习目标:手动配置限流资源保护 本次学习的工程下载链接放到文本最...

    背雷管的小青年
  • SpringBoot集成Mybatis

    目标:集成Mybatis 工具:IDEA--2020.1 学习目标:框架工具集成 本次学习的工程下载链接放到文本最后面

    背雷管的小青年
  • SpringCloud-Turbine【RabbitMQ服务监控】

      前面我们介绍了通过turbine直接聚合多个服务的监控信息,实现了服务的监控,但是这种方式有个不太好的地方就是turbine和服务的耦合性太强了,针对这个问...

    用户4919348
  • 第十一节 资源服务器api-server集成zuul网关

    用户1418372
  • 第七节 熔断路由和监控

    这里的熔断路由其实类似,他跟踪eureka服务、其他服务等的可用性。这是微服务架构中一个 重要的思想,当我们的服务不能响应服务的访问者的调用时,给出的一种自我...

    用户1418372
  • 史上最简单的SpringCloud教程 | 第七篇: 高可用的分布式配置中心(Spring Cloud Config)

    上一篇文章讲述了一个服务如何从配置中心读取文件,配置中心如何从远程git读取配置文件,当服务实例很多时,都从配置中心读取文件,这时可以考虑将配置中心做成一个微服...

    方志朋
  • 史上最简单的SpringCloud教程 | 第八篇: 消息总线(Spring Cloud Bus)

    Spring Cloud Bus 将分布式的节点用轻量的消息代理连接起来。它可以用于广播配置文件的更改或者服务之间的通讯,也可以用于监控。本文要讲述的是用Spr...

    方志朋
  • 如何将springboot 服务整合到spring cloud?

    爱明依
  • Spring整合Mybatis(IDEA版)

    该文主要教大家如何整合spring和mybatis,整合完成效果,可以从数据库中查询出学生信息:

    说故事的五公子

扫码关注云+社区

领取腾讯云代金券