在微服务架构中,业务高峰时段,请求过多可能导致直接查询数据库,造成雪崩等事故。
一、雪崩问题
微服务调用链路中某个服务故障,引起整个链路中所有服务不可用。
 解决方案
 1)超时处理
 设置超时时间,请求超过一定时间没有响应就返回错误信息,不会无休止等待。
 2)仓壁模式/线程隔离
 设定每个业务能使用的线程数,避免耗尽整个Tomcat的资源
 3)熔断降级
 由断路器统计业务执行的异常比例,若超出阈值,则会熔断改业务,拦截访问该业务的一切请求
 4)流量控制
 限制业务访问的QPS,避免服务因流量突增加故障
二、服务比较
Sentinel 与 Hystrix 服务保护对比
| 指标 | Sentinel | Hystrix | 
|---|---|---|
| 隔离策略 | 信号量隔离 | 线程池/信号量隔离 | 
| 熔断降级策略 | 基于慢点用比例或异常比例 | 基于失败比率 | 
| 实时指标实现 | 滑动窗口 | 滑动窗口-基于RxJava | 
| 规则配置 | 支持多数据源 | 支持多数据源 | 
| 扩展性 | 多个扩展点 | 插件的形式 | 
| 基于注解的支持 | 支持 | 支持 | 
| 限流 | 基于QPS,基于调用关系限流 | 有限的支持 | 
| 流量整形 | 支持慢启动、匀速排队模式 | 不支持 | 
| 系统自适应保护 | 支持 | 不支持 | 
| 控制台 | 开箱即用、可配置规则、秒级监控 | 不完善 | 
| 框架适配 | Spring Cloud、Dubbo | Spring Cloud Netflix | 
本篇主要记录在虚拟机上安装的过程,方便备查。
三、安装与访问
第一步、下载安装
推荐下载 地址 Sentinel 
 进入下载页面,可下载 jar 包,这里选择的版本是 sentinel-dashboard-1.8.6.jar
 
第二步、运行
 在jar所在目录下,运用 Java包启动命令来启动。
java -jar .\sentinel-dashboard-1.8.6.jar
控制台打印信息如下所示。
 
第三步、访问登录
访问地址 http://localhost:8080,默认账户:sentinel; 默认密码:sentinel;启动界面如下图所示。
 
进入页面后,页面控制台如下图所示。
 



















