目录
一、Sentinel简介
1.概述
Sentinel(分布式系统的流量防卫兵)是阿里开源的一套用于服务容错的综合性解决方案。它以流量为切入点, 从流量控制、熔断降级、系统负载保护等多个维度来保护服务的稳定性。
Sentinel核心分为两个部分:
- 核心库(java客户端):能够运行于所有 Java 运行时环境,同时对Spring Cloud 等框架也有较好的支持。
- 控制台(Dashboard):基于 Spring Boot 开发,打包后可以直接运行。
2.安装Sentinel服务
第一步:打开sentinel下载网址
https://github.com/alibaba/Sentinel/releases
第二步:下载jar包(可以存储到一个sentinel目录),如图

第三步:在sentinel对应目录,打开命令行(cmd),启动运行sentinel
java -Dserver.port=8180 -Dcsp.sentinel.dashboard.server=localhost:8180 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.0.jar
3.访问Sentinel服务
第一步:假如Sentinel启动ok,通过浏览器进行访问测试,如图

第二步:登录sentinel,默认用户名和密码都是sentinel

二、Sentinel限流入门
1.概述
数据库连接池、线程池等在使用时都会跟定一个限定的值,这就是限流的一种设计。限流的目的防止恶意请求流量、恶意攻击,或者防止流量超过系统峰值。
2.sentinel集成实现
第一步:sentinel应用于服务消费方(Consumer),在消费方添加依赖如下
<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>
第二步:打开服务消费方配置文件application.yml,添加sentinel配置
spring:
cloud:
sentinel:
transport:
port: 8099 #跟sentinel控制台交流的端口,随意指定一个未使用的端口即可
dashboard: localhost:8180 # 指定sentinel控制台地址。
第三步:启动服务提供者,服务消费者,然后在浏览器访问消费者url,如图

第四步:刷新sentinel控制台,检测服务列表,如图

注:Sentinel的控制台其实就是一个SpringBoot编写的程序,我们需要将我们的服务注册到控制台上,即在微服务中指定控制台的地址,并且还要在消费端开启一个与sentinel控制台传递数据端的端口,控制台可以通过此端口调用微服务中的监控程序来获取各种信息。
3.sentinel限流入门案例
我们设置一下指定接口的流控(流量控制),QPS(每秒请求次数)单机阈值为1,代表每秒请求不能超出1次,要不然就做限流处理,处理方式直接调用失败。
第一步:选择要限流的链路,如图

第二步:设置限流策略

第三步:反复刷新访问消费端服务,检测是否有限流信息输出

三、Sentinel流控规则分析
1.阈值类型分析
-
QPS(Queries Per Second):当调用相关url对应的资源时,QPS达到单机阈值时,就会限流。
-
线程数:当调用相关url对应的资源时,线程数达到单机阈值时,就会限流。
2.设置限流模式
Sentinel的流控模式代表的流控方式,默认为直接,还有关联、链路。
2.1 直接模式
Sentinel默认的流控处理就是【直接—>快速失败】

2.2 关联模式
当关联的资源达到阈值,就限流自己。例如设置了关联资源为/url2时,假如关联资源/

最低0.47元/天 解锁文章
1246

被折叠的 条评论
为什么被折叠?



