介绍
Sentinel是面向分布式服务架构的流量控制组件,主要以流量为切入点,从流量控制、熔断降级、系统自适应保护等多个维度来帮助您保障微服务的稳定性。
启动Sentinel控制台
- 去github.com/alibaba/Sen… 下载相关jar包
- 下载完毕后,通过CMD启动,启动命令:
java -Dserver.port=8088 -Dcsp.sentinel.dashboard.server=localhost:8088 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.0.jar 注意:这个Sentinel控制台用的是8088端口
- 最终启动页面如下:localhost:8088/ ,账号密码都是sentinel
项目连接到Sentinel控制台
- 新建个项目,叫:sentinel-study,pom引入以下依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
<version>1.5.0.RELEASE</version>
</dependency>
- 在application.yml,配置如下
spring:
application:
name: sentinel-study
cloud:
sentinel:
transport:
#sentinel地址,端口要对上
dashboard: 127.0.0.1:8088
eager: true
server:
port: 801
- 新建个Controller,写个简单的接口,如下
- 启动该项目,进入localhost:801/hello!然后刷新下Sentinel控制台看到,项目已经出现了。
测试Sentinel限流
Sentinel 支持通过 @SentinelResource 注解定义资源进行限流
1. 如果接口没有加上@SentinelResource注解,如何限流控制
(1)在控制台新建流控规则,如下,资源名对应接口的getMapping地址。表示一秒最多访问2次
(2)测试刚才的接口(在浏览器拼命ctrl+R),测试结果如下
2. 如果接口加上了@SentinelResource注解,如何限流控制
(1)新建个接口,加上注解@SentinelResource,value是资源名,fallback是指限流时的回调方法
(2)进入Sentinel控制台,打开“簇点链路”如下,如下,直接编辑规则
(3)测试,频繁访问该接口(在浏览器拼命ctrl+R),会发现已经被限流了
参考文档