1.sentinel-dashboard

Sentinel的使用分为两部分:

  • sentinel-dashboard:与hystrix-dashboard类似,但是它更为强大一些。除了与hystrix-dashboard一样提供实时监控之外,还提供了流控规则、熔断规则的在线维护等功能。
  • 客户端整合:每个微服务客户端都需要整合sentinel的客户端封装与配置,才能将监控信息上报给dashboard展示以及实时的更改限流或熔断规则等。

下面我们就分两部分来看看,如何使用Sentienl来实现接口限流。
sentinel-dashboard-1.6.3.jar
通过命令启动

  1. java -jar sentinel-dashboard-1.6.3.jar --server.port=8080
  • -Dsentinel.dashboard.auth.username=sentinel: 用于指定控制台的登录用户名为 sentinel;
  • -Dsentinel.dashboard.auth.password=123456: 用于指定控制台的登录密码为 123456;如果省略这两个参数,默认用户和密码均为 sentinel
  • -Dserver.servlet.session.timeout=7200: 用于指定 Spring Boot 服务端 session 的过期时间,如 7200 表示 7200 秒;60m 表示 60 分钟,默认为 30 分钟;

    2.整合sentinel

  1. 整合sentinel

parent文件

  1. <parent>
  2. <artifactId>SpringCloud-BySnow</artifactId>
  3. <groupId>org.example</groupId>
  4. <version>1.0-SNAPSHOT</version>
  5. <relativePath/>
  6. </parent>
  7. <modelVersion>4.0.0</modelVersion>
  8. <artifactId>sentinel-dashboard</artifactId>
  9. <properties>
  10. <maven.compiler.source>8</maven.compiler.source>
  11. <maven.compiler.target>8</maven.compiler.target>
  12. </properties>
  13. <dependencies>
  14. <dependency>
  15. <groupId>org.springframework.boot</groupId>
  16. <artifactId>spring-boot-starter-web</artifactId>
  17. </dependency>
  18. <dependency>
  19. <groupId>org.springframework.cloud</groupId>
  20. <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
  21. </dependency>
  22. </dependencies>
  1. 编写测试文件

    1. @SpringBootApplication
    2. public class SentinelLimitApplication {
    3. public static void main(String[] args) {
    4. SpringApplication.run(SentinelLimitApplication.class, args);
    5. }
    6. @Value("${server.port}")
    7. private Integer serverPort;
    8. @RestController
    9. class TestController {
    10. @GetMapping("/server")
    11. public String hello() {
    12. InetAddress localHost = InetAddress.getLoopbackAddress();
    13. return localHost.getHostAddress() + ":" + serverPort;
    14. }
    15. }
    16. }
  2. 添加配置参数 ``` spring.application.name = alibaba-sentinel-rate-limiting server.port = 8001

spring.cloud.sentinel.transport.dashboard = localhost:8080 ```

  1. 簇点链路 -> 流控 配置熔断策略

image.png

  1. 新增策略,QPS,单机阈值 2

image.png

  1. 快速调用接口,触发失败熔断策略

image.png