Sentinel 与 Hystrix 的区别是什么?

Sherwin.Wei Lv7

Sentinel 与 Hystrix 的区别是什么?

回答重点

Hystrix 注重线程隔离以及服务保护,其主要是针对单个服务的服务调用,而 Sentinel 支持的粒度更小一点,其可以细化到服务的一个接口、一段代码等,并且其支持自定义流量控制规则,其可以针对整个系统的服务进行流量的监控和保护,两者的主要区别在于 Hystrix 是以服务保护为切入点,而 Sentinel 是以流量保护作为切入点

下面放一张表格,方便大家进行对比:

Snipaste_2024-06-13_06-11-15.jpg

扩展知识

Hystrix

  • Hystrix 是 Spring Cloud Netflix 开源的熔断器实现,主要用于保护分布式系统中的服务调用,避免服务雪崩情况的发生。其主要的特点有很多,包括线程隔离、资源保护以及降级处理等。
  • Hystrix 通过将每个服务调用放入独立的线程池,避免了因为一个服务线程资源的枯竭从而导致整个微服务系统线程资源的紧张,从而实现线程隔离的效果。
  • Hystrix 提供了服务监控功能,其可以通过监控服务的运行指标,比如延迟、调用成功数等,当服务发生异常情况的时候,其会自动打开服务熔断器,避免服务连锁故障现象的发生,并且在熔断器运行一段时间之后,其会尝试自动恢复。
  • Hystrix 提供服务降级处理,即当服务出现不可用或者响应过慢的时候,其会调用预先设定的 fallback 方法,从而实现服务的降级处理,提供系统的可用性。

Sentinel

  • Sentinel 是阿里巴巴开源的 Spring Cloud Alibaba 体系中一款重要的流量控制和系统保护工具,主要用于实现微服务架构中的流量控制、熔断降级以及系统的负载保护等功能。其主要的特点就是支持多种变成语言,并且提供了丰富的流量控制策略以及细粒度的服务保护,并且提供了图形界面实现实时监控数据的展示以及动态规则配置的支持等功能。
  • Sentinel 可以实时监控服务的请求流量和各项指标,并且提供实时的仪表盘和可视化的监控界面。
  • Sentinel 支持多种流量策略,比如基于 QPS、线程数、并发连接数等多种指标。
  • Sentinel 支持通过 API 动态配置流量规则以及熔断规则,并且可以个根据服务的实际情况进行动态调整。
  • Sentinel 的支持粒度更小,支持对任意资源,比如代码段、url、接口等实现自定义流量控制规则,比如熔断、限流、降级等操作。
  • Sentinel 支持多种语言,适合跨语言的微服务架构。
Comments
On this page
Sentinel 与 Hystrix 的区别是什么?