spring Cloud中,解决Feign/Ribbon整合Hystrix第一次请求失败的问题?

摘要:
在《春云》中,Feign和Ribbon在整合Hytrix后可能首次无法调用。如何解决这个问题?出现此问题的原因是Hytrix的默认超时为1秒。如果在此时间之后没有响应,它将输入回退代码。第一个请求通常很慢,响应时间可能超过1秒。了解原因后,让我们总结一下解决方案。有三种解决方案,以假装为例。除某些特殊情况外,不建议使用此方法。

Spring Cloud中,Feign和Ribbon在整合了Hystrix后,可能会出现首次调用失败的问题,要如何解决该问题呢?

造成该问题的原因

Hystrix默认的超时时间是1秒,如果超过这个时间尚未响应,将会进入fallback代码。而首次请求往往会比较慢(因为Spring的懒加载机制,要实例化一些类),这个响应时间可能就大于1秒了。知道原因后,我们来总结一下解决方法。解决方案有三种,以feign为例。

方法一

1
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=5000

#当调的用服务超过5秒后再调用fallback

该配置是让Hystrix的超时时间改为5秒

方法二

1
hystrix.command.default.execution.timeout.enabled= false

该配置,用于禁用Hystrix的超时时间

方法三

1
feign.hystrix.enabled= false

该配置,用于索性禁用feign的hystrix。该做法除非一些特殊场景,不推荐使用。

免责声明:文章转载自《spring Cloud中,解决Feign/Ribbon整合Hystrix第一次请求失败的问题?》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Linux解决安装包无法找到问题Unable to locate package rar数据库——Oracle(增删改查,单行函数,多行函数,多表查询)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

SpringCloud学习笔记(5):Hystrix Dashboard可视化监控数据

简介 上篇文章中讲了使用Hystrix实现容错,除此之外,Hystrix还提供了近乎实时的监控。本文将介绍如何进行服务监控以及使用Hystrix Dashboard来让监控数据图形化。 项目介绍 sc-parent,父模块(请参照SpringCloud学习笔记(1):Eureka注册中心) sc-eureka,注册中心(请参照SpringCloud学习笔...

【转】Sentinel 快速入门

标签:降级服务入门Spring流量熔断Sentinel快速 提起 Spring Cloud 的限流降级组件,一般首先想到的是 Netflix 的 Hystrix。 不过就在2018年底,Netflix 宣布不再积极开发 Hystrix,该项目将处于维护模式。官方表示 1.5.18 版本的 Hystrix 已经足够稳定,可以满足 Netflix 现有应用的需...

.NET Core 微服务架构 Steeltoe 使用(基于 Spring Cloud)

阅读目录: 1. Spring Cloud Eureka 注册服务及调用 2. Spring Cloud Hystrix 断路器 3. Spring Cloud Hystrix 指标监控 4. Spring Cloud Config 配置中心 现在主流的开发平台是微服务架构,在众多的微服务开源项目中,Spring Cloud 非常具有代表性,但实现平台...

跟着我一步一步的搭建一个基于springcloud的微服务实例

Table of Contentsgenerated with DocToc microservicecloud 插件推荐 建立父工程Microservicecloud 搭建Employ员工服务创建数据库 创建消费者服务microservicecloud-employconsummer Eureka注册中心搭建 单机模式创建microserv...

网关的超时层级

网关的超时层级 zuul zuul: max: host: connections: 500 host: socket-timeout-millis: 60000 connect-timeout-millis: 60000 ribbon ribbon: ReadTimeout: 10000 Connect...

SpringCloud之Hystrix熔断降级(六)

前言 Hystrix是一个用于处理分布式系统的延迟和容错和开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时,异常等,Hystrix能保证在一个依赖出现问题的情况下,不会导致整体服务失败,避免级联故障,以提高分布式系统的弹性; “断路器”本身是一种开关装置,当某个服务单元发生故障之后,通过断路器的故障 监控(类似熔断保险丝),向调用方返回一个符...