雪崩效应
在介绍sentinel之前,首先介绍一下雪崩效应,什么是雪崩效应呢?
服务雪崩效应是一种因“服务提供者的不可用”(原因)导致“服务调用者不可用”(结果),并将不可用逐渐放大的现象。
服务雪崩的过程的三个阶段:
- 服务提供者不可用
- 重试加大请求流量
- 服务调用者不可用
常见的服务容错的思想:
- 超时
- 限流
- 仓壁模式
- 断路器模式
Sentinel是什么?
Sentinel的官方标题是:分布式系统的流量防卫兵。随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
具有以下特征:
- 丰富的应用场景
- 完备的实时监控
- 广泛的开源生态
- 完善的SPI扩展点
具体的介绍大家可以参考官方文档
使用Sentinel实现容错
1.搭建Sentinel 控制台(官方教程)
1.1.获取Sentinel控制台
1.2. 启动控制台
注意:启动Sentinel控制台需要JDK版本为1.8及以上版本
使用如下命令启动控制台
java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard.jar
其中 -Dserver.port=8080
用于指定 Sentinel 控制台端口为 8080
。
常用的启动参数配置项
参数 | 作用 |
---|---|
-Dcsp.sentinel.dashboard.server=localhost:8080 | 向 Sentinel 接入端指定控制台的地址 |
-Dproject.name=sentinel-dashboard | 向 Sentinel 指定应用名称,比如上面对应的应用名称就为 sentinel-dashboard |
-Dsentinel.dashboard.auth.username=sentinel | 用于指定控制台的登录用户名为 sentinel |
-Dsentinel.dashboard.auth.password=123456 | 用于指定控制台的登录密码为 123456 ;如果省略这两个参数,默认用户和密码均为 sentinel |
-Dserver.servlet.session.timeout=7200 | 用于指定 Spring Boot 服务端 session 的过期时间,如 7200 表示 7200 秒;60m 表示 60 分钟,默认为 30 分钟 |
全部的配置项可以参考启动配置项文档
1.3. 启动完成
控制台页面
2. 整合Sentinel
2.1.在之前的SpringBoot 项目添加依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
2.2 修改yml文件
spring:
cloud:
sentinel:
transport:
# 指定 sentinel dashboard的地址
dashboard: 127.0.0.1:8849
2.3 请求几次前面的接口查看dashboard
到此我们项目已经成功接入了Sentinel 控制台了