Ribbon的超时
- 全局设置:
ribbon: ReadTimeout: 60000 ConnectTimeout: 60000
- 局部设置:
-
service-id: ribbon: ReadTimeout:1000 ConnectTimeout:1000
其中,service-id
是Ribbon所使用的虚拟主机名,一般和Eureka Server上注册的服务名称一致,即:与spring.application.name
一致。Feign的超时
从Spring Cloud Edgware开始,Feign支持使用属性配置超时:
feign: client:config: feignName: connectTimeout:5000 readTimeout: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:1000 ConnectTimeout: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/ # 指定的url path: /user/** # url对应的路径。
那么,此时Zuul的超时只与如下两个配置有关:zuul: host: socket-timeout-millis:10000 connect-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:true isolation: thread: timeoutInMilliseconds:1000
Tips
如有组件跟Hystrix配合使用,一般来讲,建议Hystrix的超时 > 其他组件的超时,否则将可能导致重试特性失效。
注:转载自 周立SpringCloud
- 如果Zuul的路由未使用Ribbon
- 如果Zuul的路由使用了Ribbon
相关推荐
在大家学习spring cloud的时候组件是必不可少的一部分,下面这篇文章主要给大家介绍了关于Spring Cloud中各组件超时的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
断路器示意图 SpringCloud Netflix实现了断路器库的名字叫Hystrix. 在微服务架构下,通常会有多个层次的服务调用. 下面是微服架构下, 浏览器端通过API访问后台微服务的一个示意图: hystrix 1 一个微服务的超时...
毕业设计之SpringCloud-B2C电子商务平台服务端。 开发技术 Spring,SpringMVC,Spring Cloud相关组件 Mybatis,Maven Mysql,Redis Jquery,Ajax, Solr Android 项目描述: 基于SpringCloud微服务架构的B2C电子...
Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端 负载均衡的工具。 简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一。Ribbon客户端...
高级java笔试题 spring-cloud 学习项目 本项目是学习《中华石杉老师-21天互联网Java进阶面试训练营(分布式篇)》课程时自己...的组件,初始化这些组件需要耗费一定的时间,所以很容易导致超时问题。 解决办法就是让
Dubbo 和 Spring Cloud 有什么哪些区别? Dubbo 和 Dubbox 之间的区别? 注册中心 Dubbo 有哪些注册中心? Dubbo 的注册中心集群挂掉,发布者和订阅者之间还能通信么? 集群 Dubbo集群提供了哪些负载均衡策略? ...
云阿里巴巴spring + alibaba架构构建热部署Devtools eureka服务中心配置及部署环境配置提供服务端全局环境配置...dev 配置Ribbon负载均衡手写负载均衡算法配置openfeign组件的服务调用超时配置日志配置配置中心
java中solr的笔试题 个人学习笔记 python nginx AWS认证考试 技术路线 LB负载均衡 负载均衡常见使用场景,问题定位,特别是对于...Cloud/Spring Boot django/flask mybatis 存储 对于数据存储类的技术栈,主要是在缓存
基于注解使用,对业务代码可以说是零入侵,目前内置适配spring-cloud(Feign调用) , dubbo。 同时具备一定的扩展性与兼容性,因为存在自定义的服务框架,或者以后会涌现出更多的流行分布式服务框架,所以会提供...
5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 ...
5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 ...
5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 ...
5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 ...
5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 ...
5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 ...
5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 ...
5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 ...
5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 ...
5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 ...
5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 ...