zoukankan      html  css  js  c++  java
  • 微服务容错处理—Hystrix初探

    Hystrix是什么?

      如果服务提供者响应特别慢,那么消费者就会被强制等待,直到服务提供者响应或者超时。在这种高负载的情况下,如果不做任何处理,可能会导致消费者服务器的资源耗尽,导致该微服务崩溃。由于微服务之间存在依赖关系,该消费者可能是别的系统的服务提供者,当一个微服务宕掉之后,可能会引发雪崩效应。要想避免雪崩效应,就必须有一个强大的容错机制,该容错机制需要满足以下两点:

    1. 为网络设置超时,让资源尽快释放
    2. 使用断路器模式,当对某个微服务的请求大量失败时,就没必要再去请求了,快速失败
    3. 基于第二点,断路器应当可以自动诊断依赖的服务是否已经恢复正常,如果恢复正常了,那么久恢复请求该服务

    Hystrix就是一个实现了超时机制和断路器模式的工具类库,主要通过以下几点实现延迟和容错:

    1. 包裹请求:使用HystrixCommand包裹对依赖的调用逻辑,每个命令在独立的线程中执行。这使用到了设计模式中的“命令模式”
    2. 跳闸机制:当某个服务的错误率达到一定的阈值,Hystrix可以自动或手动的跳闸。
    3. 资源隔离:Hystrix为每个依赖的服务都维护了一个小型的线程池(或者信号量),如果该线程池已满,发往该依赖的请求立即被拒绝,而不是排队等待,从而加速快速失败的判定
    4. 监控:Hystrix可以近乎实时的监控运行指标和配置的变化,例如成功、失败、超时以及被拒绝的请求
    5. 回退机制:当请求失败、超时、被拒绝或当断路器打开时,执行回退逻辑,回退逻辑可以由开饭人员自行提供,例如返回一个缺省值
    6. 自我修复:断路器打开一段时间后,会自动进入“半开”状态,此时,断路器允许一个请求访问依赖的服务,如果该请求能够调用成功,则关闭路由器,否则继续保持打开状态
  • 相关阅读:
    js中apply的用法(转)
    JS匿名函数的理解
    winform 添加“设置文件”
    用VMware安装虚拟系统时出现Invalid system disk,Replace the disk and then press any key
    Easy Multiple Copy to Clipboard by ZeroClipboard
    SaltStack配置管理-状态间关系
    Docker容器之Nginx
    CentOS7.2升级默认yum安装的php版本
    升级PHP版本导致zabbix无法访问解决办法
    Piwik网站访问统计软件安装
  • 原文地址:https://www.cnblogs.com/yanghanwen/p/12104410.html
Copyright © 2011-2022 走看看