在微服务架构中,业务高峰时段,请求过多可能导致直接查询数据库,造成雪崩等事故。
一、雪崩问题
微服务调用链路中某个服务故障,引起整个链路中所有服务不可用。
解决方案
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;启动界面如下图所示。

进入页面后,页面控制台如下图所示。



















