1.2.1.Sentinel 是什么
Sentinel (分布式系统的流量防卫兵) 是阿里开源的一套用于服务容错的流量控制框架。它以流量为切入点, 从流量控制、熔断降级等多个维度来保护服务的稳定性。
1.2.2.Sentinel的主要功能
Sentinel的主要功能就是容错,主要体现为下面这两个方面:
-
流量控制
-
监控QPS:调用该接口的QPS达到阈值的时候进行控制
(不被上游服务压垮)
-
-
监控线程数:给每个接口分配独立线程数,出现故障时能将问题隔离在内部而不扩散
(不被下游服务拖垮)
-
熔断降级
某个资源出现慢调用比例或异常比例超出阈值的时候,则暂时切断对下游服务的调用,避免级联故障
总之一句话,我们需要做的事情,就是在Sentinel的资源上配置各种各样的规则,来实现各种容错的功能:
1.2.3.Sentinel的安装和启动
Sentinel 提供一个轻量级的控制台, 它提供资源实时监控以及规则管理等功能。
2.执行命令:java -jar sentinel-dashboard-1.8.3.jar
3.浏览器访问:http://localhost:8080,默认账号密码:sentinel/sentinel
1.2.4.Sentinel接入控制台
1.2.4.1.order-service
1.2.4.1.1.pom.xml
<!-- sentinel启动器 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> </dependency>
1.2.4.1.2.application.yml
spring: cloud: sentinel: transport: dashboard: 127.0.0.1:8080 #指定sentinel的地址
1.2.4.1.3.controller
/** *被保护的逻辑 */ @RequestMapping(value = "/hello") public String hello() { return "Hello Sentienl!!!"; }
1.2.4.2.测试
-
流量监控:sentinel是懒加载,需要浏览器访问:http://localhost:8002/hello
-
新增流控规则
QPS:代表每秒的访问次数,只要访问次数到达一定的阈值,则进行限流操作