关于spring coud hystrix超时问题

本人在开发spring cloud 项目过程中,由于使用了hystrix,出现了每次重启后的第一次请求会发生超时问题,特别是使用了feign的微服务之间的互相调用之后。分析原因:因为spring的懒加载问题,如果我们在第一次请求时,牵扯到多个微服务的实例化问题时,就会出现超时,因为hystrix的默认超时时间是10ms。一般来说,如果只实例化一个服务,10ms的时间是没问题的,但大多数情况下,我们的业务会涉及多个模块,这时10ms的时间就不够用了。所以我们要扩大hystrix的超时设置。

hystrix是feign默认集成的。超时的情况会发生在以下几种情况:一共有serviceA(实例化时间10ms以内),serviceB(实例化时间10ms以内),serviceC(实例化时间10ms以内)三个微服务,其中A会通过feign的远程调用B和C。如果我们先请求B和C,再请求A,这时用默认的hystrix超时配置,不会超时,因为B和C再被A调用时,已经加载到spring的context中了。但如果先请求A,这时需要先加载B和C,再加载A,那么三者一共消耗的时间肯定大于10ms。所以我们要做的就是扩大hystrix的超时时间设置,


整个网关配置中,一共存在3个超时设置。第一个是zuul路由的超时时间,第二个是hystrix超时设置,第三个是ribbon的超时时间设置,这三个应该是递减的。其中经常出问题的就是hystrix配置:hystrix.command.default.execution. isolation. thread. timeoutInMilliseconds=20000

记住它是单独拎出来的配置,别在ribbon下配置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值