sentinel:面向分布式服务框架的高可用防护组件。
服务雪崩:因服务提供者的不可用导致服务调用者的不可应,并将不可用逐渐放大的过程
直白点说:在一个微服务系统中 只要一条线上的服务因为某一些原因导致响应事件过长或者宕机,那么整个服务就处于等待的状态,如果只有一个请求还可以接受,但是突然之间客户端来了10万的并发,10万的并发走到宕机的地方全部被挤压,导致整个微服务项目一直处于等待状态,从而因为系统的资源的紧张,最终导致项目奔溃,这种称之为雪崩效应
针对以上的问题可以才用两种方法:服务限流、隔离、熔断、降级
服务限流
Sentinel和Hystrix对比:
Sentinel | Hystrix | |
隔离策略 | 信号量隔离 | 线程池隔离/信号量隔离 |
熔断降级策略 | 基于响应时间或者失败比率 | 基于失败比率 |
实时指标实现 | 滑动窗口 | 滑动窗口(基于RxJava) |
规则配置 | 支持多种数据源 | 支持多种数据源 |
扩展性 | 多个扩展点 | 插件的形式 |
基于注解的支持 | 支持 | 支持 |
限流 | 基于QPS,支持基于调用关系的限流 | 有限的支持 |
流量整形 | 支持慢启动、匀速器模式 | 不支持 |
系统负载保护 | 支持 | 不支持 |
控制台 | 开箱即用,可配置规则、查看秒级监控、机器发现等 | 不完善 |
常见框架的适配 | Servlet、SpringCloud、Dubbo、gRPC等 | Servlet、SpringCloud Netflex |
启动sentinel控制台:
下载控制台jar包并在本地启动:可以参见这里
https://github.com/alibaba/Sentinel/releases
启动控制台命令
#启动控制台命令
java -jar sentinel-dashboard-1.8.2.jar
未完 待续。。。。