Spring Cloud常用组件超时总结
2019-08-27 07:14:02来源:博客园 阅读 ()
Spring Cloud常用组件超时总结
本文以Spring Cloud Finchley.RELEASE版本为例。
RestTemplate超时时间
RestTemplate可以通过RestTemplateBuilderl来设置超时时间:
@Bean public RestTemplate restTemplate(RestTemplateBuilder restTemplateBuilder) { return restTemplateBuilder .setConnectTimeout(...) .setReadTimeout(...) .build(); }
Ribbon超时时间
#全局超时配置
ribbon:
ReadTimeout: 2000 #默认5s
ConnectTimeout: 1000 #默认2s
#针对具体的服务配置
service-id:
ribbon:
ReadTimeout: 1000
ConnectTimeout: 1000
详情见默认配置列表。
Feign超时时间
文档中没有详细介绍,但部分示例代码中包含了相关配置:
feign:
client:
config:
default:
connectTimeout: 5000 #默认10s
readTimeout: 5000 #默认60s
loggerLevel: basic
Feign的默认超时时间在Request.Options中设置的。
注意:如果在应用里同时使用Feign和Ribbon,那么超时时间配置以Feign的为主。
Hystrix超时时间
hystrix:
command:
default:
execution:
timeout:
enabled: true #默认true
isolation:
thread:
timeoutInMilliseconds: 5000
Hystrix作为熔断器,通常其他组件一起使用时(如Ribbon):
//伪代码调用方式
hystrix(retry(ribbon()))
此时需要将超时时间设置成比其他组件的长,否则重试机制将失效。
Zuul超时时间
由于Zuul(Spring Cloud)使用了Hystrix和Ribbon,所以它的超时配置是这2个部分的组合。 同时,如果配置了URL路由,而非通过服务的方式(不经Ribbon),还需要配置 zuul.host.connect-timeout-millis。以下是完整配置:
zuul:
routes:
service-id:
path: /test/**
serviceId: SERVICE-ID
admin:
path: /admin/**
url: http://test.com/admin
host: #针对直接发起URL请求的超时配置(不经Ribbon)
max-total-connections: 5000
max-per-route-connections: 500
#针对Hystrix的超时配置
hystrix:
command:
default:
execution:
timeout:
enabled: true
isolation:
thread:
timeoutInMilliseconds: 5000
#针对Ribbon的超时配置
ribbon:
ReadTimeout: 1500
ConnectTimeout: 1000
如果错误地将Hystrix超时配置成2s,而Ribbon配置成5s,那么在每次请求都会看到类似于下面的警告:
2019-01-19 17:39:20.981 WARN 36568 --- [io-60362-exec-9] o.s.c.n.z.f.r.s.AbstractRibbonCommand : The Hystrix timeout of 2000ms for the command SERVICE-ID is set lower than the combination of the Ribbon read and connect timeout, 12000ms.
参考
Feign Client 配置
Spring Cloud各组件超时总结
原文链接:https://www.cnblogs.com/rgshare/p/spring_cloud_timeout_summary.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Spring系列.ApplicationContext接口 2020-06-11
- springboot2配置JavaMelody与springMVC配置JavaMelody 2020-06-11
- 给你一份超详细 Spring Boot 知识清单 2020-06-11
- SpringBoot 2.3 整合最新版 ShardingJdbc + Druid + MyBatis 2020-06-11
- 掌握SpringBoot-2.3的容器探针:实战篇 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash