上篇博客分析了当下游服务出故障,导致服务雪崩的情况,然后准备引入Sentinel组件来做容错。
Sentinel是什么?
Sentinel (分布式系统的流量防卫兵) 是阿里开源的一套用于服务容错的综合性解决方案。它以流量 为切入点, 从流量控制、熔断降级、系统负载保护等多个维度来保护服务的稳定性。
Sentinel 分为两个部分:
- 核心库,核心库(Java 客户端)不依赖任何框架/库,能够运行于所有Java运行时环境,同时对 Dubbo / Spring Cloud
等框架也有较好的支持。 - 控制台,控制台(Dashboard)基于Spring Boot开发,打包后可以直接运行,不需要额外的Tomcat等应用容器。
接下来引入Sentinel组件,同样在mall-common项目中引入依赖,统一管理,如下:
<!--sentinel组件-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
然后安装下Sentinel控制台,使用可视化界面操作还是很舒服的
- 下载jar包,解压到文件夹,地址如下:
https://github.com/alibaba/Sentinel/releases
- 启动控制台,由于Sentinel控制台本身就是一个Spring Boot项目,所以直接使用jar命令启动项目,如下:
java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.7.0.jar
- 通过浏览器访问http://localhost:8080进入控制台,默认用户名/密码是 sentinel/sentinel,结果如下:
接下来就是在sentinel中接入那些需要受保护的资源了。