feign使用hystrix熔断的配置

栏目: 服务器 · 发布时间: 5年前

内容简介:在分布式系统中,每个服务都可能会调用很多其他服务,被调用的那些服务就是依赖服务,有的时候某些依赖服务出现故障也是很正常的。Hystrix 可以让我们在分布式系统中对服务间的调用进行控制,加入一些调用延迟或者依赖故障的容错机制。Hystrix 通过将依赖服务进行资源隔离,进而阻止某个依赖服务出现故障时在整个系统所有的依赖服务调用中进行蔓延;同时Hystrix 还提供故障时的 fallback 降级机制。

熔断器hystrix

在分布式系统中,每个服务都可能会调用很多其他服务,被调用的那些服务就是依赖服务,有的时候某些依赖服务出现故障也是很正常的。

Hystrix 可以让我们在分布式系统中对服务间的调用进行控制,加入一些调用延迟或者依赖故障的容错机制。

Hystrix 通过将依赖服务进行资源隔离,进而阻止某个依赖服务出现故障时在整个系统所有的依赖服务调用中进行蔓延;同时Hystrix 还提供故障时的 fallback 降级机制。

总而言之,Hystrix 通过这些方法帮助我们提升分布式系统的可用性和稳定性。

feign开启熔断功能

feign可以用okhttp代替传统的httpclient,性能更好

feign:
  hystrix:
    enabled: true
  httpclient:
    enabled: false
  okhttp:
    enabled: true

ribbon这块也可以对okhttp进行配置

ribbon.httpclient.enabled=false
ribbon.okhttp.enabled=true

hystrix熔断器可以对请求进行重试,对超时时间进行配置等。

hystrix:
  command:
    default:
      execution:
        timeout:
          enabled: true
      isolation:
        thread:
          #目前有两个容器实例,单个请求超时5s,+重试>10s,超15s则熔断
          timeoutInMilliseconds: 15000

ribbon:
  #ribbon请求连接的超时时间- 限制3秒内必须请求到服务,并不限制服务处理的返回时间
  connectTimeout: 3000
  #请求处理的超时时间 下级服务响应最大时间,超出时间消费方(路由也是消费方)返回timeout,超时时间不可大于断路器的超时时间
  readTimeout: 5000

feign添加fallback实现默认行为

feign上使用fallback之前,当服务端出现问题时,可以快速响应,并且不会抛出异常,就象为feign加了一层try...cache一样。

使用方式

开始feign.hystrix的功能

feign:
  hystrix:
    enabled: true
  httpclient:
    enabled: false
  okhttp:
    enabled: true

当feign的服务端出现问题时,返回值为fallback的值,你可以自己定,例如:

@Component
@Slf4j
public class UserClientFallback implements UserClient {
  @Override
  public Map getUser(Long id) {
    logger.info("getUser.error");
    return null;
  }

  @Override
  public Map getUsers() {
    logger.info("getUsers.error.retrun.default");
    return ImmutableMap.of("name", "lind", "sex", "male");
  }
}

调用userclient失败之后,将返回默认的对象

@GetMapping("/api/v1/test")
  public ResponseEntity<?> userGet() {
   Map users= userClient.getUsers();
    return ResponseUtils.okMessage("success");
  }

结果将是默认值

{"status":200,"message":"操作成功","data":{"name":"lind","sex":"male"},"totalRecords":0}

以上所述就是小编给大家介绍的《feign使用hystrix熔断的配置》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

机器与人:埃森哲论新人工智能

机器与人:埃森哲论新人工智能

【美】保罗•多尔蒂 詹姆斯•威尔逊 / 赵亚男 / 中信出版社 / 2018-10-1 / 49.00元

自人工智能问世以来,人们普遍持有人机对立的观点,且无时无刻不在害怕自己的工作会被人工智能取代。作者认为,是时候抛开这些无谓的担忧了,因为人类社会正走向一个与机器共融共生的时代。 未来的新型工作模式是什么?未来有哪些工作不会被人工智能取代?人工智能时代重要的生存技能是什么?本书围绕这三大核心问题做了透彻的分析。作者带我们见识了置于业务流程背景之下的人工智能,阐述了其在不同职能部门中起到的推动作......一起来看看 《机器与人:埃森哲论新人工智能》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具