Zuul的3种超时问题,微服务响应超时问题,Zuul配置超时时间
问题描述:采用zuul作为网关,根据不同的访问路径进行微服务的路由,譬如有个服务是user,我访问user服务的某个接口时,该接口执行时间很慢,2秒多,然后还没执行完,zuul就执行熔断了。
前提:zuul和微服务都已经注册到了eureka中,zuul采用service-id来进行路由。
关键是zuul的配置文件,通过配置不同的超时策略来完成超时处理。
注意看官方的文档:http://cloud.spring.io/spring-cloud-netflix/single/spring-cloud-netflix.html#_zuul_timeouts
这里就是讲zuul的超时的,配置很简单:
ribbon.ReadTimeout, ribbon.SocketTimeout这两个就是ribbon超时时间设置,当在yml写时,应该是没有提示的,给人的感觉好像是不是这么配的一样,其实不用管它,直接配上就生效了。
还有zuul.host.connect-timeout-millis, zuul.host.socket-timeout-millis这两个配置,这两个和上面的ribbon都是配超时的。区别在于,如果路由方式是serviceId的方式,那么ribbon的生效,如果是url的方式,则zuul.host开头的生效。(此处重要!使用serviceId路由和url路由是不一样的超时策略)
如果你在zuul配置了熔断fallback的话,熔断超时也要配置,不然如果你配置的ribbon超时时间大于熔断的超时,那么会先走熔断,相当于你配的ribbon超时就不生效了。
熔断超时是这样的:
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 60000
default代表默认,如果你想为某个特定的service配熔断超时策略,可以用这种方式:
总结起来就是三种超时配置:
网关的超时层级
zuul
zuul:
max:
host:
connections: 500
host:
socket-timeout-millis: 60000
connect-timeout-millis: 60000
#ribbon
ribbon:
ReadTimeout: 10000
ConnectTimeout: 10000
MaxAutoRetries: 0
MaxAutoRetriesNextServer: 1
eureka:
enabled: true
#hystrix
hystrix:
command:
default:
execution:
timeout:
enabled: true
isolation:
thread:
timeoutInMilliseconds: 60000
这里面ribbon和hystrix是同时生效的,哪个值小哪个生效,另一个就看不到效果了。
我的例子是这样配置的
我启动项目,访问test1,也就是sleep3秒那个时,会进入熔断超时,访问test2,sleep1秒时能正常返回,访问test3同样进入熔断。
可以自行修改超时时间来测试一下。
Zuul的3种超时问题,微服务响应超时问题,Zuul配置超时时间相关推荐
- SpringCloud(第 025 篇)Zuul 路由后面的微服务挂了后,Zuul 提供了一种回退机制来应对熔断处理...
2019独角兽企业重金招聘Python工程师标准>>> SpringCloud(第 025 篇)Zuul 路由后面的微服务挂了后,Zuul 提供了一种回退机制来应对熔断处理 一.大致 ...
- 几种常见的微服务架构方案简述——ZeroC IceGrid、Spring Cloud、基于消息队列
微服务架构是当前很热门的一个概念,它不是凭空产生的,是技术发展的必然结果.虽然微服务架构没有公认的技术标准和规范草案,但业界已经有一些很有影响力的开源微服务架构平台,架构师可以根据公司的技术实力并结合 ...
- ASP.NET Core微服务(三)——【跨域配置】
ASP.NET Core微服务(三)--[跨域配置] 对应练习demo(跨域)下载路径(1积分):[https://download.csdn.net/download/feng8403000/151 ...
- spring cloud在配置zuul访问后报错,微服务响应超时问题
報錯內容: 2019-12-19 11:11:34.267 INFO 5640 --- [erListUpdater-0] c.netflix.config.ChainedDynamicProper ...
- envoy重试_具有Envoy代理的微服务模式,第二部分:超时和重试
envoy重试 该博客是系列文章的一部分,该系列文章更深入地介绍了Envoy Proxy和Istio.io ,以及它如何实现一种更优雅的连接和管理微服务的方式. 跟随我@christianposta ...
- c3p0 服务启动获取连接超时_微服务架构中的熔断、降级
微服务架构中熔断和降级是保证服务高可用的一项重要功能点,微服务区别于一体化项目的最大区别也再于熔断和降级,很多微服务项目的开发人员对熔断的理解就是当服务不可用的时候,为了让整体服务可以正常运行,需要让 ...
- 第二章 微服务网关基础组件 - zuul入门
一.zuul简介 1.作用 zuul使用一系列的filter实现以下功能 认证和安全 - 对每一个resource进行身份认证 追踪和监控 - 实时观察后端微服务的TPS.响应时间,失败数量等准确的信 ...
- 使用Envoy代理的微服务模式,第二部分:超时和重试
该博客是系列文章的一部分,该系列文章更深入地介绍了Envoy Proxy和Istio.io ,以及它如何实现更优雅的连接和管理微服务的方式. 跟随我@christianposta ,紧跟这些博客文章的 ...
- Service Mesh服务网格:8种方式简化微服务部署
Robert Whiteley translate by Grace 基于微服务的架构是未来的趋势,但是实现这种架构会面临许多困难.现代应用架构远比过去的架构复杂,因此实现微服务架构将会带来了一系列特 ...
- Spring cloud 微服务架构之Ribbon/Fegin连接超时ReadTimeout问题
问题描述: 近期用Spring cloud 开发微服务架构时候,在服务与服务之间调用调试代码时候,出现链接超时. 错误信息: Read timed out executing GET http://s ...
最新文章
- 推荐一个 Java 接口快速开发框架
- centos6.5 安装mysql5.6单实例和多实例(单配置文件)
- C#编译器选项(目标平台)
- 启明云端分享| sigmastar ssd201_ffmpeg移植
- Linux终端光标消失问题
- cordova混合开发流程
- 什么是pisa测试_PISA测试排名世界第一,中国教育已是世界冠军?
- 用SQL语句操作数据
- TiDB 在平安核心系统的引入及应用
- C语言将txt文本文档数据重新排序并放至新txt文本文档中
- 黑马程序员-----视频看完了,谈谈自己的感受
- 拟推荐全省文物系统先进_文物系统突出贡献先进个人事迹材料
- 越美丽的东西我越不可碰 | 天蝎座如何在黑暗中找到那束光
- 2021-金三银四跳槽-还愿
- Kaggle教程 机器学习中级3 分类变量
- 随机权重的PSO算法
- 超详细的张飞硬件90天读书笔记01
- 台式电脑计算机被限制,gpedit.msc 无法运行 提示本次操作由于这台计算机的限制而被取消(超强解决方案)...
- 博士申请 | 香港大学倪卓娴教授招收机器学习和智慧物联网方向全奖博士生
- JVM虚拟机读书日记4