• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
dwtfukgv
博客园    首页    新随笔    联系   管理    订阅  订阅
hystrix

Hystrix

Hystrix的设计原则

  1. 阻止任何一个依赖服务耗尽所有的资源,比如tomcat中的所有线程资源
  2. 避免请求排队和积压,采用限流和fail fast来控制故障
  3. 提供fallback降级机制来应对故障
  4. 使用资源隔离技术,比如bulkhead(舱壁隔离技术),swimlane(泳道技术),circuit breaker(短路技术),来限制任何一个依赖服务的故障的影响
  5. 通过近实时的统计/监控/报警功能,来提高故障发现的速度
  6. 通过近实时的属性和配置热修改功能,来提高故障处理和恢复的速度
  7. 保护依赖服务调用的所有故障情况,而不仅仅只是网络故障情况

Hystrix是如何实现它的目标的?

  1. 通过HystrixCommand或者HystrixObservableCommand来封装对外部依赖的访问请求,这个访问请求一般会运行在独立的线程中,资源隔离
  2. 对于超出我们设定阈值的服务调用,直接进行超时,不允许其耗费过长时间阻塞住。这个超时时间默认是99.5%的访问时间,但是一般我们可以自己设置一下
  3. 为每一个依赖服务维护一个独立的线程池,或者是semaphore,当线程池已满时,直接拒绝对这个服务的调用
  4. 对依赖服务的调用的成功次数,失败次数,拒绝次数,超时次数,进行统计
  5. 如果对一个依赖服务的调用失败次数超过了一定的阈值,自动进行熔断,在一定时间内对该服务的调用直接降级,一段时间后再自动尝试恢复
  6. 当一个服务调用出现失败,被拒绝,超时,短路等异常情况时,自动调用fallback降级机制
  7. 对属性和配置的修改提供近实时的支持
posted on 2024-12-21 17:33  dwtfukgv  阅读(16)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3