1>导入
1)高并发带来的问题-->
服务与服务之间相互调用,由于网络原因或者自身原因,并不能保证服务百分百可用,容易出现网络延迟,请求大量涌入,导致服务器崩溃的现象
2)服务器雪崩效应-->
由于服务之间都是相互调用额,一旦因为某个细小的服务挂了,就会导致正一大片的服务都不可用,类似自然现象的雪崩效应,由于一片雪花的下落,引发雪崩的情况
防止雪崩效应,就要做好服务的容错
3)常见的容错方案-->
隔离 超时 限流 熔断 降级(以后细说)
4)常见的容错组件-->
应对高并发的技术
-->限流 拓容 Redis MQ
业务手段优化
-->Hystrix Resilience Sentinel
2>Sentinel入门
1)定义
sentinel是一种分布式系统的流量防卫兵,是阿里开源的一套用于服务容错的综合性解决方案,它以流量控制,熔断降级,系统负载保护等多个维度来保护服务的稳定性因为其广泛使用,可用来替代Hystrix.
2)特征
>>丰富的应用场景 如秒杀
>>完备的实时监控 如单台机器秒级数据
>>广泛的开源生态 能兼容其他框架
3)开启Sentinel
打开压缩包所在的文件夹,用cmd,输入口令
# 直接使用jar命令启动项目(控制台本身是一个SpringBoot项目)
java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.0.jar
地址栏访问
application.yml配置
#sentinel的配置
cloud:
sentinel:
transport:
port: 9999 #跟控制台交流的端口,随意指定一个未使用的端口即可
dashboard: localhost:8080 # 指定控制台服务的地址
4)实现一个接口的限流
sentinel控制台(记得多刷新几次 才会出现对应的类的)
1)实现一个接口的簇点链路-->流控-->填写参数
这里的单机阈值表示每秒三次请求 对应阈值类型的QPS
再去地址栏刷新,一秒三次请求,1/3的概率会报错
5)sentinel的容错维度
1>>流量控制-->用于调整网络包的数据
2>>熔断降级-->当链路中某个资源出现请求等待时间过长时,会让请求快速失败
3>>系统负载保护-->保证在负载较高的情况下,能处理最多的请求
6)Sentinel的规则
流控 降级 热点 系统规则 授权规则 (以后细说)