文章目录
-
-
- Sentinel实现流控与降级
-
- 1、什么是Sentinel
- [2、Sentinel 的特征](#2、Sentinel 的特征)
-
- 2.1、丰富的应用场景
- 2.2、完备的实时监控
- 2.3、广泛的开源生态:
- [2.4、完善的 SPI 扩展点](#2.4、完善的 SPI 扩展点)
- 3、安装Sentinel控制台
- 4、微服务集成Sentinel
- 5.流控
-
Sentinel实现流控与降级
1、什么是Sentinel
Sentinel (分布式系统的流量防卫兵) 是阿里开源的一套用于服务容错的综合性解决方案。它以流量
为切入点, 从流量控制、熔断降级、系统负载保护等多个维度来保护服务的稳定性。
2、Sentinel 的特征
2.1、丰富的应用场景
Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景, 例如秒杀(即
突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用
应用等。
2.2、完备的实时监控
Sentinel 提供了实时的监控功能。通过控制台可以看到接入应用的单台机器秒
级数据, 甚至 500 台以下规模的集群的汇总运行情况。
2.3、广泛的开源生态:
Sentinel 提供开箱即用的与其它开源框架/库的整合模块, 例如与 Spring
Cloud、Dubbo、gRPC 的整合。只需要引入相应的依赖并进行简单的配置即可快速地接入
Sentinel。
2.4、完善的 SPI 扩展点
Sentinel 提供简单易用、完善的 SPI 扩展接口。您可以通过实现扩展接口来快速地定制逻辑。例如定制规则管理、适配动态数据源等。
3、安装Sentinel控制台
3.1、Sentinel下载
3.2、启动控制台
//直接使用jar命令启动项目(控制台本身是一个SpringBoot项目)
java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -
Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.7.0.jar
3.3、访问Sentinel控制台
访问http://localhost:8080, 进入控制台, 默认用户名/密码均是sentinel


如果看到上述2个图片的话,说明Sentinel控制安装成功
4、微服务集成Sentinel
4.1、微服务pom.xml中加入sentinel依赖
xml
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
4.2、微服务application.yml中添加sentinel配置
yaml
spring:
cloud:
sentinel:
transport:
port: 9999 # 跟控制台交流的端口, 随意指定一个未使用的端口即可
dashboard: 127.0.0.1:8080 # 指定控制台服务的地址
4.3、微服务定义方法并启动微服务
java
package com.goblin.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 订单Sentinel前端控制器
* <br>
* 用来进行sentinel的学习
*/
@RestController
public class OrderSentinelController {
@GetMapping("/message1")
public String message1() {
return "message1";
}
}
4.4、Sentinel控制台查看微服务资源

5.流控
未完待续