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各组件超时相关推荐

  1. Spring Cloud 五大组件

    Spring Cloud 五大组件 1. 简介 2. Eureka 3. Ribbon 4. Feign 5. Zuul 6. Hystrix 1. 简介 Spring Cloud全家桶是Pivota ...

  2. 关于spring cloud 各种组件的停更/升级/替换

    以前常用的一些spring cloud的组件 现在spring cloud 常用的一些组件

  3. spring cloud各组件详解

    一,Eureka 服务注册中心,特性有失效剔除.服务保护.健康检查. 二.Ribbon 客户端负载均衡,特性有区域亲和.重试机制. 三.Hystrix 客户端容错保护,特性有服务降级.服务熔断.请求缓 ...

  4. Spring Cloud 各组件调优参数

    Spring Cloud整合了各种组件,每个组件往往还有各种参数.本文来详细探讨Spring Cloud各组件的调优参数. Tomcat配置参数 1 server: 2 tomcat: 3 max-c ...

  5. Spring Cloud各组件总结归纳

    前面介绍了很多Spring Cloud的组件,本篇按照自己的角度来做一次归纳. Spring Cloud技术应用从场景上可以分为两大类:润物无声类和独挑大梁类. 润物无声,融合在每个微服务中.依赖其它 ...

  6. Spring Cloud 各个组件介绍

    从上图可以看出 Spring Cloud 各个组件相互配合,合作支持了一套完整的微服务架构: Eureka 负责服务的注册与发现,很好地将各服务连接起来. Hystrix 负责监控服务之间的调用情况, ...

  7. SpringCloud学习笔记3:Spring Cloud Netflix 组件(五大神兽)

    一.Spring Cloud Netflix有哪些组件? eureka (提供服务注册与发现功能) ribbon(提供负载均衡功能) Feign(整合了ribbon和Hystrix,具有负载均衡和熔断 ...

  8. springcloud注册demo(使⽤第⼀代Spring Cloud核⼼组件完成项⽬构建、编码及测试)

    一.业务描述 以注册.登录为主线,串联起验证码生成及校验.邮件发送.IP防暴刷.用户统一认证等功能. 实现需基于Spring Cloud 微服务架构,技术涉及Nginx.Eureka.Feign(Ri ...

  9. Spring Cloud各组件

    讲的不错:http://www.ityouknow.com/springcloud/2017/05/16/springcloud-hystrix.html Spring Cloud技术应用从场景上可以 ...

最新文章

  1. 关于c语言的字符常量
  2. Faster-RCNN学习
  3. sqlserver 2008安装总是弹出重启提示
  4. 15个问题告诉你如何使用Java泛型
  5. android工具栏隐藏和显示不出来了,Android工具栏操作按钮未显示
  6. 一头感动了全中国的“猪”!感动了全世界!泪奔
  7. Windows核心编程_实现QQ好友来消息时任务栏头像闪烁功能
  8. 攻击局域网计算机,如何攻击局域网电脑
  9. 开启NTP时钟服务器,让电脑变成网络时间服务器
  10. 量子通信技术、量子加密技术
  11. 计算机桌面保护时间的调整显示,电脑屏幕显示时间设置_电脑屏幕的显示时间...
  12. webp图片介绍及用法总结
  13. rust拆除建筑_破败建筑除了拆除或修复,变成废墟花园是更浪漫的一种可能
  14. 2.5 第九讲 一阶微分方程的计算
  15. 如何选择示波器探头带宽
  16. android.intent.action大全和用法收集
  17. 怎样让你的LinkedIn动态上热门?高效使用我们的领英
  18. 亚马逊抛出“下一代贸易链”整合解决方案:中国跨境电商如何借道转型?
  19. 尚硅谷MySQL基础部分的笔记
  20. 游戏服务器中多人交互逻辑业务的思考

热门文章

  1. cad线性标注命令_CAD常用标注快捷键和命令
  2. mysql c api 封装_封装MySQL C API 基本操作
  3. Date类+DateFormat
  4. Linux 防火墙:Netfilter iptables
  5. 使用Puppeteer进行数据抓取(一)——安装和使用
  6. linux设备驱动归纳总结(五):3.操作硬件——IO静态映射【转】
  7. SPSS输出的结果都要写到文章中吗
  8. 【Android】Fragment的简单笔记
  9. DataGirdView 编辑项时的验证
  10. 软件过程改进之百科名片