关于sentinel:sentinel与hystrix比较

90次阅读

共计 1381 个字符,预计需要花费 4 分钟才能阅读完成。

表格来自 Sentinel Github 官网文档

  • Hystrix 最外围的一项性能就是资源隔离,反对线程池隔离和信号量隔离;Sentinel 反对信号量隔离。
  • Sentinel 与 Hystrix 都反对基于失败比率的熔断降级,在调用超过指定的数量并且失败比率达到设定阀值时触发熔断,并在下个工夫窗口主动复原。Sentinel 也反对按失败总数熔断降级,但按失败总数的熔断降级固定工夫窗口为 1 分钟,当 1 分钟内调用失败总数达到设定的阀值就会触发熔断。此外,Sentinel 还反对基于均匀响应工夫的熔断降级,均匀响应工夫越长,阐明服务的性能在继续降落,在响应工夫继续飙高时主动熔断,能够避免调用慢造成级联阻塞。
  • Sentinel 和旧版本 Hystrix 的实时指标数据统计实现都是基于滑动窗口,指标数据统计指的是统计每个资源的以后窗口工夫内的申请总数、解决胜利总数、失败总数、总耗时、均匀耗时、最大耗时、最小耗时、被降级总数等。
  • Sentinel 提供数据源接口可实现动静加载规定配置,联合 loadRules API 可灵便的运行时批改规定配置,并且随时批改随时失效。Hystrix 的资源模型设计上采纳了命令模式,在创立 Command 时就须要指定隔离策略是线程池隔离还是信号量隔离,一但指定了隔离策略,运行期间便不能批改隔离策略,而在 Sentinel 中资源定义和规定配置是拆散的,因而在配置的灵活性上 Sentinel 更具备劣势。
  • Sentinel 支持系统自适应限流,Hystrix 所不反对的。当零碎负载较高的时候,如果仍继续让申请进入,可能会导致系统解体,无奈响应。在集群环境下,负载平衡把本应这台机器承载的流量转发到其它的机器下来,如果这个时候其它的机器也处在一个边缘状态的时候,这个减少的流量就会导致这台机器解体,最初导致整个集群不可用。针对这个状况,Sentinel 提供了对应的爱护机制,让零碎的入口流量和零碎的负载达到一个均衡,保证系统在能力范畴之内解决最多的申请。
  • 在 QPS 过高的状况下,间接回绝超出限度的申请是最常见的实现形式,但有些场景咱们可能并不想间接拒绝请求,而是让申请排队期待解决,例如某一秒突增申请过多,但下一秒可能又没有申请或者申请很少的状况。Sentinel 的流量管制反对多种模式,例如间接回绝模式、慢启动预热模式、匀速器模式。而慢启动预热模式和匀速器模式也是 Hystrix 所不反对的。
  • Sentinel 在框架的设计上应用了责任链模式和 SPI 机制提供扩大性能。应用 SPI 咱们能够自定义降级性能 ProcessorSlot。
  • Sentinel 还反对集群限流。除了轮询负载平衡算法外,其它的算法都会导致流量到集群的每个节点都不一样,有的多有的少。集群流控能够准确地管制整个集群的调用总量,联合单机限流兜底,能够更好地施展流量管制的成果。Sentinel 集群分嵌入模式(Embedded)与独立模式(Alone)。

    嵌入模式:集群限流服务端作为利用的内置服务同利用一起启动,与利用在同一个过程,可动静的筛选其中一个节点作为集群限流服务端
    集群限流服务端作为一个独立的利用部署

  • 黑白名单限流和热点参数限流也是 Sentinel 的一大特色,黑白名单限流,可依据申请起源判断起源是否在黑名单中,如果在黑名单中则拒绝请求,否则放行,联合 Sentinel 的灵便动静配置,黑白名单可用于顶峰期间对某些服务限流。
正文完
 0