目录
1.基础理论
2.配置
3.加入依赖和配置文件
4.流控
1.基础理论
Sentinel是阿里开源的项目,提供了流量控制、熔断降级、系统负载保护等多个维度来保障服务之间的稳定性。
丰富的应用场景 :Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即
突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。
完备的实时监控 :Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机
器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。
广泛的开源生态 :Sentinel 提供开箱即用的与其它开源框架/库的整合模块,例如与 Spring
Cloud、Dubbo、gRPC 的整合。您只需要引入相应的依赖并进行简单的配置即可快速地接入Sentinel。
完善的 SPI 扩展点:Sentinel 提供简单易用、完善的 SPI 扩展接口。您可以通过实现扩展接口来快
速地定制逻辑。例如定制规则管理、适配动态数据源等。
2.配置
需要注意版本号,这里使用1.8.6版本,可以在官网直接下载。
打开命令窗口,输入java -jar sentinel-dashboard-1.8.6.jar 直接打开,默认为8080端口。
如果端口号被占用,使用java -Dserver.port=7777 -jar sentinel-dashboard-1.8.6.jar,修改端口号为7777。
访问localhost:7777或localhost:7777/#/login,用户名和密码为sentinel。
3.加入依赖和配置文件
两个依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
配置文件
spring:
cloud:
sentinel:
transport:
dashboard: localhost:7777 #连接sentinel中心
# filter:
# enabled: false
# eager: true
management:
endpoints:
web:
exposure:
include: "*" #过滤所以请求
4.流控
流量控制(Flow Control),原理是监控应用流量的QPS或并发线程数等指标,当达到指定阈值时对流量进行控制,避免系统被瞬时的流量高峰冲垮,保障应用高可用性。
1.直接:当api大达到限流条件时,直接限流
2.关联:当关联的资源到达阈值,就限流自己
3.链路:只记录指定路上的流量,指定资源从入口资源进来的流量,如果达到阈值,就进行限流,api级别的限流。
QPS(query per second)每秒请求数,就是说服务器在一秒的时间内处理了多少个请求
在流控规则中会有明确显示
一旦每秒点击量超过设置的流控后,则会显示sentinel默认提示语,表示已经被限流。