## 为什么选择Sentinel? Sentinel是一个面向分布式架构的轻量级服务保护框架,主要以流量控制、熔断降级、系统负载保护等多个维度。 隔离策略:信号量隔离(并发线程数限流) 熔断策略: 1. 基于响应时间 2. 异常比率 3. 异常数 限流:基于QPS限流 控制台:查看秒级监控、机器发现等。 ## 服务限流 当**系统资源不够,不足以应对大量请求**,对系统按照预设的规则进行流量限制或功能限制 ## 服务熔断 当**调用目标服务的请求和调用大量超时或失败,服务调用方为避免造成长时间的阻塞造成影响其他服务**,后续对该服务接口的调用不再经过进行请求,直接执行本地的默认方法 ## 服务降级 **为了保证核心业务在大量请求下能正常运行,根据实际业务情况及流量,对部分服务降低优先级**,有策略的不处理或用简单的方式处理 ## 为什么熔断降级 系统承载的访问量是有限的,如果不做流量控制,会导致系统资源占满,服务超时,从而所有用户无法使用,通过服务限流控制请求的量,服务降级省掉非核心业务对系统资源的占用,最大化利用系统资源,尽可能服务更多用户 ## 和Hystrix对比 ![sentinel和hystrix-qb3wFi](https://gitee.com/dreamcater/blog-img/raw/master/uPic/sentinel和hystrix-qb3wFi.png) **值得补充的是**:相比 Hystrix 基于线程池隔离进行限流,这种方案**虽然隔离性比较好,但是代价就是线程数目太多,线程上下文切换的 overhead 比较大,特别是对低延时的调用有比较大的影响**。 Sentinel 并发线程数限流不负责创建和管理线程池,而是**简单统计当前请求上下文的线程数目,如果超出阈值,新的请求会被立即拒绝,效果类似于信号量隔离**。 [官网补充](http://dubbo.apache.org/zh-cn/blog/sentinel-introduction-for-dubbo.html)