Spring Cloud各组件超时
Ribbon的超时
全局设置:
ribbon:ReadTimeout: 60000ConnectTimeout: 60000
局部设置:
service-id:ribbon:ReadTimeout: 1000ConnectTimeout: 1000
其中,service-id
是Ribbon所使用的虚拟主机名,一般和Eureka Server上注册的服务名称一致,即:与spring.application.name
一致。
Feign的超时
从Spring Cloud Edgware开始,Feign支持使用属性配置超时:
feign:client:config:feignName:connectTimeout: 5000readTimeout: 5000
对于老版本,可以写个feign.Request.Options
,参考:org.springframework.cloud.netflix.feign.ribbon.FeignRibbonClientAutoConfiguration#feignRequestOptions
的写法即可。
RestTemplate的超时
一些时,我们可能使用了RestTemplate,例如
@Bean
@LoadBalanced
public RestTemplate restTemplate() {return new RestTemplate();
}
此时,超时可使用如下方式设置:
@Bean
@LoadBalanced
public RestTemplate restTemplate() {SimpleClientHttpRequestFactory simpleClientHttpRequestFactory = new SimpleClientHttpRequestFactory();simpleClientHttpRequestFactory.setConnectTimeout(1000);simpleClientHttpRequestFactory.setReadTimeout(1000);return new RestTemplate(simpleClientHttpRequestFactory);
}
Zuul的超时
Zuul的超时比较复杂,因为Zuul整合了Ribbon、Hystrix。下面分两种情况讨论:
如果Zuul的路由使用了Ribbon
那么:Zuul的超时则与Ribbon、Hystrix相关,此时Zuul的超时可以配置类似如下:
hystrix:command:default:execution:isolation:thread:timeoutInMilliseconds: 1000
ribbon:ReadTimeout: 1000ConnectTimeout: 1000
代码解析:此种情况下,Zuul转发所使用的过滤器是org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter
,在这个过滤器中,整合了Hystrix以及Ribbon。
如果Zuul的路由未使用Ribbon
例如:Zuul的路由配置如下:
zuul:routes:user-route: # 该配置方式中,user-route只是给路由一个名称,可以任意起名。url: http://localhost:8000/ # 指定的urlpath: /user/** # url对应的路径。
那么,此时Zuul的超时只与如下两个配置有关:
zuul:host:socket-timeout-millis: 10000connect-timeout-millis: 2000
代码解析:直接配置URL路由的方式,用不上Ribbon,也用不上Hystrix,Zuul转发所使用的过滤器是org.springframework.cloud.netflix.zuul.filters.route.SimpleHostRoutingFilter
,在这个过滤器中,Zuul使用Apache HttpClient进行转发。
在现实场景中,有时候可能两种路由方式配合使用,因此,建议大家配置以上所有属性。
Hystrix的超时
hystrix:command:default:execution:timeout:enabled: trueisolation:thread:timeoutInMilliseconds: 1000
如上,Hystrix的默认超时时间是1秒。默认开启超时机制。如需关闭Hystrix的超时,可将xxx.enabled设置为false。
Tips
如有组件跟Hystrix配合使用,一般来讲,建议Hystrix的超时 > 其他组件的超时,否则将可能导致重试特性失效。
Spring Cloud各组件超时相关推荐
- Spring Cloud 五大组件
Spring Cloud 五大组件 1. 简介 2. Eureka 3. Ribbon 4. Feign 5. Zuul 6. Hystrix 1. 简介 Spring Cloud全家桶是Pivota ...
- 关于spring cloud 各种组件的停更/升级/替换
以前常用的一些spring cloud的组件 现在spring cloud 常用的一些组件
- spring cloud各组件详解
一,Eureka 服务注册中心,特性有失效剔除.服务保护.健康检查. 二.Ribbon 客户端负载均衡,特性有区域亲和.重试机制. 三.Hystrix 客户端容错保护,特性有服务降级.服务熔断.请求缓 ...
- Spring Cloud 各组件调优参数
Spring Cloud整合了各种组件,每个组件往往还有各种参数.本文来详细探讨Spring Cloud各组件的调优参数. Tomcat配置参数 1 server: 2 tomcat: 3 max-c ...
- Spring Cloud各组件总结归纳
前面介绍了很多Spring Cloud的组件,本篇按照自己的角度来做一次归纳. Spring Cloud技术应用从场景上可以分为两大类:润物无声类和独挑大梁类. 润物无声,融合在每个微服务中.依赖其它 ...
- Spring Cloud 各个组件介绍
从上图可以看出 Spring Cloud 各个组件相互配合,合作支持了一套完整的微服务架构: Eureka 负责服务的注册与发现,很好地将各服务连接起来. Hystrix 负责监控服务之间的调用情况, ...
- SpringCloud学习笔记3:Spring Cloud Netflix 组件(五大神兽)
一.Spring Cloud Netflix有哪些组件? eureka (提供服务注册与发现功能) ribbon(提供负载均衡功能) Feign(整合了ribbon和Hystrix,具有负载均衡和熔断 ...
- springcloud注册demo(使⽤第⼀代Spring Cloud核⼼组件完成项⽬构建、编码及测试)
一.业务描述 以注册.登录为主线,串联起验证码生成及校验.邮件发送.IP防暴刷.用户统一认证等功能. 实现需基于Spring Cloud 微服务架构,技术涉及Nginx.Eureka.Feign(Ri ...
- Spring Cloud各组件
讲的不错:http://www.ityouknow.com/springcloud/2017/05/16/springcloud-hystrix.html Spring Cloud技术应用从场景上可以 ...
最新文章
- 关于c语言的字符常量
- Faster-RCNN学习
- sqlserver 2008安装总是弹出重启提示
- 15个问题告诉你如何使用Java泛型
- android工具栏隐藏和显示不出来了,Android工具栏操作按钮未显示
- 一头感动了全中国的“猪”!感动了全世界!泪奔
- Windows核心编程_实现QQ好友来消息时任务栏头像闪烁功能
- 攻击局域网计算机,如何攻击局域网电脑
- 开启NTP时钟服务器,让电脑变成网络时间服务器
- 量子通信技术、量子加密技术
- 计算机桌面保护时间的调整显示,电脑屏幕显示时间设置_电脑屏幕的显示时间...
- webp图片介绍及用法总结
- rust拆除建筑_破败建筑除了拆除或修复,变成废墟花园是更浪漫的一种可能
- 2.5 第九讲 一阶微分方程的计算
- 如何选择示波器探头带宽
- android.intent.action大全和用法收集
- 怎样让你的LinkedIn动态上热门?高效使用我们的领英
- 亚马逊抛出“下一代贸易链”整合解决方案:中国跨境电商如何借道转型?
- 尚硅谷MySQL基础部分的笔记
- 游戏服务器中多人交互逻辑业务的思考