SpringCloud Alibaba ——Sentinel流控初使用

761 阅读1分钟

介绍

Sentinel是面向分布式服务架构的流量控制组件,主要以流量为切入点,从流量控制、熔断降级、系统自适应保护等多个维度来帮助您保障微服务的稳定性。

启动Sentinel控制台

  1. github.com/alibaba/Sen… 下载相关jar包

image.png

  1. 下载完毕后,通过CMD启动,启动命令:

java -Dserver.port=8088 -Dcsp.sentinel.dashboard.server=localhost:8088 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.0.jar 注意:这个Sentinel控制台用的是8088端口

  1. 最终启动页面如下:localhost:8088/ ,账号密码都是sentinel

image.png

项目连接到Sentinel控制台

  1. 新建个项目,叫:sentinel-study,pom引入以下依赖
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
            <version>1.5.0.RELEASE</version>
        </dependency>
  1. 在application.yml,配置如下
spring:
  application:
    name: sentinel-study
  cloud:
    sentinel:
      transport:
         #sentinel地址,端口要对上
        dashboard: 127.0.0.1:8088
      eager: true
server:
  port: 801
  1. 新建个Controller,写个简单的接口,如下

image.png

  1. 启动该项目,进入localhost:801/hello!然后刷新下Sentinel控制台看到,项目已经出现了。

image.png

测试Sentinel限流

Sentinel 支持通过 @SentinelResource 注解定义资源进行限流

1. 如果接口没有加上@SentinelResource注解,如何限流控制

(1)在控制台新建流控规则,如下,资源名对应接口的getMapping地址。表示一秒最多访问2次

image.png

image.png (2)测试刚才的接口(在浏览器拼命ctrl+R),测试结果如下

image.png

2. 如果接口加上了@SentinelResource注解,如何限流控制

(1)新建个接口,加上注解@SentinelResource,value是资源名,fallback是指限流时的回调方法

image.png

(2)进入Sentinel控制台,打开“簇点链路”如下,如下,直接编辑规则

image.png

image.png (3)测试,频繁访问该接口(在浏览器拼命ctrl+R),会发现已经被限流了

image.png 参考文档

sentinelguard.io/zh-cn/docs/…