• -------------------------------------------------------------
  • ====================================

spring cloud各种超时时间设置

技能 dewbay 5年前 (2019-09-17) 2048次浏览 已收录 0个评论 扫描二维码

学习集成 hystrix 时候发现配置文件里的超时时间把我给弄晕了,

老办法 google 之,找 Issue:https://github.com/spring-cloud/spring-cloud-netflix/issues/1324

找到能解决这个问题的文章,最好还是得找到原理图学习。

以下转载自:https://codeday.me/collect/20171109/97634.html

如果是 zuul(网关)的超时时间需要设置 zuul、hystrix、ribbon 等三部分:

#zuul 超时设置
#默认 1000
zuul.host.socket-timeout-millis=2000
#默认 2000
zuul.host.connect-timeout-millis=4000

#熔断器启用
feign.hystrix.enabled=true
hystrix.command.default.execution.timeout.enabled=true
#断路器的超时时间,下级服务返回超出熔断器时间,即便成功,消费端消息也是 TIMEOUT,所以一般断路器的超时时间需要大于 ribbon 的超时时间。
#服务的返回时间大于 ribbon 的超时时间,会触发重试
##默认=1000,太小
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=60000

#断路器详细设置
#当在配置时间窗口内达到此数量的失败后,进行短路。默认 20 个)
#hystrix.command.default.circuitBreaker.requestVolumeThreshold=20
#短路多久以后开始尝试是否恢复,默认 5s)
#hystrix.command.default.circuitBreaker.sleepWindowInMilliseconds=5
#出错百分比阈值,当达到此阈值后,开始短路。默认 50%)
#hystrix.command.default.circuitBreaker.errorThresholdPercentage=50%
#ribbon 请求连接的超时时间- 限制 3 秒内必须请求到服务,并不限制服务处理的返回时间
ribbon.ConnectTimeout=3000
#请求处理的超时时间 下级服务响应最大时间,超出时间消费方(路由也是消费方)返回 timeout
ribbon.ReadTimeout=5000
# 单独设置某个服务的超时时间,会覆盖其他的超时时间限制,服务的名称已注册中心页面显示的名称为准,超时时间不可大于断路器的超时时间
#service-a.ribbon.ReadTimeout=60000
#service-a.ribbon.ConnectTimeout=60000

#重试机制
#该参数用来开启重试机制,默认是关闭
spring.cloud.loadbalancer.retry.enabled=true
#对所有操作请求都进行重试
ribbon.OkToRetryOnAllOperations=true
#对当前实例的重试次数
ribbon.MaxAutoRetries=1
#切换实例的重试次数
ribbon.MaxAutoRetriesNextServer=1
#根据如上配置,当访问到故障请求的时候,它会再尝试访问一次当前实例(次数由 MaxAutoRetries 配置),
#如果不行,就换一个实例进行访问,如果还是不行,再换一次实例访问(更换次数由 MaxAutoRetriesNextServer 配置),
#如果依然不行,返回失败信息。


露水湾 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:spring cloud各种超时时间设置
喜欢 (2)
[]
分享 (0)
关于作者:
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址