通过Zuul访问服务总超时

zuul 网关超时优化 前段时间,线上的服务不知道为啥,突然全部的服务都超时,所有的请求经过网关都超时,后来进行链路追踪排查,发现有一个服务链接 RDS 数据库,一个查询花费了 20S 的查询时间,导致后续调用该服务的应用都超时。然后超时的连接占满了 zuul 的转发池,最终导致了所有经过 gateway 的服务都在等待,导致全体服务全部超时。 阅读详情

问题一 Gateway timeout

响应错误:

{
    "timestamp": "2019-10-23T03:19:28.656+0000",
    "status": 504,
    "error": "Gateway Timeout",
    "message": "com.netflix.zuul.exception.ZuulException: Hystrix Readed time out"
}

 

网关后台错误:

2019-10-23 11:19:28.624  WARN 129349 --- [nio-9000-exec-8] o.s.c.n.z.filters.post.SendErrorFilter   : Error during filtering

com.netflix.zuul.exception.ZuulException: 
	at org.springframework.cloud.netflix.zuul.filters.post.SendErrorFilter.findZuulException(SendErrorFilter.java:114)
	at org.springframework.cloud.netflix.zuul.filters.post.SendErrorFilter.run(SendErrorFilter.java:76)
	at com.netflix.zuul.ZuulFilter.runFilter(ZuulFilter.java:117)
	at com.netflix.zuul.FilterProcessor.processZuulFilter(FilterProcessor.java:193)
	at com.netflix.zuul.FilterProcessor.runFilters(FilterProcessor.java:157)
	at com.netflix.zuul.FilterProcessor.error(FilterProcessor.java:105)
	at com.netflix.zuul.ZuulRunner.error(ZuulRunner.java:112)
	at com.netflix.zuul.http.ZuulServlet.error(ZuulServlet.java:145)
	at com.netflix.zuul.http.ZuulServlet.service(ZuulServlet.java:83)
	at org.springframework.web.servlet.mvc.ServletWrappingController.handleRequestInternal(ServletWrappingController.java:165)
	at org.springframework.cloud.netflix.zuul.web.ZuulController.handleRequest(ZuulController.java:44)
	at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:52)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:866)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.boot.actuate.web.trace.servlet.HttpTraceFilter.doFilterInternal(HttpTraceFilter.java:90)

网页错误:

 

 

解决办法

增加如下配置:

zuul:
  add-host-header: true
  host:
    connect-timeout-millis: 15000   # HTTP连接超时大于Hystrix的超时时间
    socket-timeout-millis: 60000    # socket超时

    
# 设置API网关中路由转发请求的HystrixCommand执行超时时间,单位毫秒
# 要大于(RibbonReadTimeout+RibbonConnectTimeout)*(MaxAutoRetries+1)*(MaxAutoRetriesNextServer+1)
# MaxAutoRetries默认0,MaxAutoRetriesNextServer默认1
hystrix:
  command:
    default:
      execution:
        isolation:
          thread:
            timeoutInMilliseconds: 240000


# 设置路由转发请求时创建请求连接的超时时间、路由转发请求的超时时间。
# 断路器Hystrix的超时时间需大于Ribbon的超时时间
ribbon:
  ReadTimeout: 60000
  ConnectTimeout: 60000

 

问题二 Forward error

网关后台错误:

2019-10-23 14:03:47.527  WARN 21586 --- [nio-9000-exec-3] o.s.c.n.z.filters.post.SendErrorFilter   : Error during filtering

com.netflix.zuul.exception.ZuulException: Forwarding error
	at org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter.handleException(RibbonRoutingFilter.java:191)
	at org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter.forward(RibbonRoutingFilter.java:166)
	at org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter.run(RibbonRoutingFilter.java:114)
	at com.netflix.zuul.ZuulFilter.runFilter(ZuulFilter.java:117)
	at com.netflix.zuul.FilterProcessor.processZuulFilter(FilterProcessor.java:193)
	at com.netflix.zuul.FilterProcessor.runFilters(FilterProcessor.java:157)
	at com.netflix.zuul.FilterProcessor.route(FilterProcessor.java:118)
	at com.netflix.zuul.ZuulRunner.route(ZuulRunner.java:96)
	at com.netflix.zuul.http.ZuulServlet.route(ZuulServlet.java:116)
	at com.netflix.zuul.http.ZuulServlet.service(ZuulServlet.java:81)
	at org.springframework.web.servlet.mvc.ServletWrappingController.handleRequestInternal(ServletWrappingController.java:165)
	at org.springframework.cloud.netflix.zuul.web.ZuulController.handleRequest(ZuulController.java:44)
	at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:52)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:866)

 

解决办法

同上

 

 

zuul转发超时 超时设置 # zuul zuul.host.connect-timeout-millis=10000 zuul.host.socket-timeout-millis=10000 # ribbon ribbon.ConnectTimeout = 30000 ribbon.ReadTimeout = 30000 #hystrix hystrix.timeoutInMillions = 10000 hystrix.command.default.execution.isolation.thread.timeo 阅读详情

相关推荐

Zuul的api-gateway转发多个服务,静态资源访问

用Zuul作为api网关,转发到多个微服务,访问这些微服务中的静态资源 通过在zuul中为要访问的微服务的路径取别名 zuul转发到其他服务,静态资源的访问路径发生改变 由原来的本项目的 ip + 端口 + href路径 变为: zuul的ip+zuul的端口+href路径 zuul路由设置 server: # 服务端口号 port: 8001 # 设置路由映射 # zuul会...

weixin_38418945的博客 3855

SpringCloud:Zuul网关访问接口超时,type=Gateway Timeout, status=504

使用Zuul搭建网关,通过网关访问一个设置了延时的接口,结果并没有进入延时回调函数,而是直接显示超时。 Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Fri Aug 02 16:31:42 CST 2019 Th...

opp003的博客 7272

Nacos服务搭建系列之——(五)搭建Zuul服务

在微服务场景中,很多时候是需要使用网关的。 引入依赖 这里主要引入3个依赖,zuul依赖,nacos的config依赖以及nacos的服务发现依赖(里面包含Nacos-Client) <!--Zuul依赖--> <dependency> <groupId>org.springframework.cloud</groupId> <...

qq_40233503的博客 1607

Zuul超时问题,微服务响应超时问题,Zuul配置超时时间

Zuul超时问题,微服务响应超时问题,Zuul配置超时时间 问题描述:采用zuul作为网关,根据不同的访问路径进行微服务的路由,譬如有个服务是user,我访问user服务的某个接口时,该接口执行时间很慢,2秒多,然后还没执行完,zuul就执行熔断了。 前提:zuul和微服务都已经注册到了eureka中,zuul采用service-id来进行路由。 关键是zuul的配置文件,...

梦想起飞的地方......... 2692

基于python获取网易云热门歌单及封面

先看一下图片背后的代码 非常好,里面歌单名字,id,以及封面图片都有了.在复制url的时候注意把/#删掉,要不然爬不了. import requests from lxml import etree url='https://music.163.com/discover/playlist' head={ 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Ch

ziyuan12345678的博客 536

vTaskStartScheduler()详解

是启动 FreeRTOS 实时内核的“扳机”。在调用它之前,你只是创建了一些任务结构,但它们都处于“待命”状态,系统仍然在按传统的裸机前后台方式运行。调用这个函数后,FreeRTOS 内核会接管系统的控制权,开始根据优先级调度你创建的任务,多任务环境才真正开始。关键点:它没有参数。它的所有行为都由中的配置宏控制。它通常不会返回。一旦调用,除非没有任务可以运行(或者你显式地停止了调度器),否则程序流永远不会回到main()函数中调用它的下一行。是一个没有参数但行为由精密控制的函数。

Shylock_Mister的博客 1594

springCloud-zuul 03 Zuul中的路由转发

一,配置zuul 模块yml 文件 最直观的理解: “路由”是指根据请求URL,将请求分配到对应的处理程序。在微服务体系中,Zuul负责 接收所有的请求。根据不同的URL匹配规则,将不同的请求转发到不同的微服务处理。 server: port: 8086 #服务端口 spring: application: name: api-gateway #指定服务名 zuul: routes: service-order: # 这里是路由id,随意写

阿涩的博客 2107

模块 stm32_基于STM32设计的RFID读卡模块电路方案(原理图+程序)

采用stm32F030F4,用PWM产生125KHZ的方波,经过推挽电路进行功率放大,高频电流进入LC串联谐振电路,345uH和4.7NF的谐振频率正好是125KHZ,这时电容两端电压会到十几伏。当有卡接近线圈时,线圈两端会有曼彻斯特编码的调幅波。通过二极管以及电容的检波和滤波,产生的小信号送入LM358进行放大和整形,变成单片机可以读取的曼彻斯特编码信号。• IO 分配(采用内部晶...

weixin_28686771的博客 3816

通过zuul访问某个方法一直Gateway Timeout, status=504 而通过端口直接访问则不会

今天遇见一个问题,通过zuul访问一个获取树状数据的方法一直报Gateway Timeout, status=504 , { "timestamp": "2020-06-29T11:42:00.366+0000", "status": 504, "error": "Gateway Timeout", "message": "com.netflix.zuul.exception.ZuulException: Hystrix Readed time out" } 发现是被zuul熔断了

hung_jun的博客 5847

AI时代敏捷开发新范式——意图驱动开发IDD

具体的功能代码、单元测试、集成测试用例,以及最终可运行的、支持PlantUML的Markdown转Word工具新版本。:业务方(如技术文档团队)反馈,现有的Markdown转Word工具在处理包含PlantUML代码块的文档时,无法正确生成图表,导致技术方案、架构图等关键信息丢失,严重影响了文档交付质量和团队效率。这不仅带来了交付周期显著缩短、资源效能倍增的可观收益,更深远的意义在于,它描绘了未来软件工业化、智能化的新图景:一个由精准意图驱动、AI自主执行、人类智慧引领的敏捷、高效、高质的新世界。

LiuJunjiang的专栏 551

保姆级图解:HKMG工艺中的‘覆盖层’(Cap Layer)到底怎么调阈值电压?

本文深入解析了HKMG工艺中覆盖层(Cap Layer)如何精准调控阈值电压的关键技术。通过原子级精度的ALD工艺和材料选择,覆盖层在半导体制造中扮演着隐形调节器的角色,直接影响晶体管的电气特性。文章详细介绍了La2O3和Al2O3等材料的特性对比、ALD工艺的原子级控制,以及实战调试中的关键步骤和问题排查方法。

weixin_27032989的博客 496

Zuul超时问题,微服务响应超时,zuul进行熔断

是这样的,今天碰到了微服务响应超时问题cloud版本(Dalston.SR1),而且超时时间特别短,2秒就超时,zuul就走熔断了。 我采用zuul作为网关,根据不同的访问路径进行微服务的路由,譬如有个服务是user,我访问user服务的某个接口时,该接口执行时间很慢,2秒多,然后还没执行完,zuul就执行熔断了,进入了我配好的ZuulFallbackProvider里。所以来研究一下zuul的...

穷水叮咚的博客 2053

Win11 24H2共享访问被禁?深入聊聊SMB签名和‘不安全的来宾登录’那点事

本文深入解析Win11 24H2共享访问故障,探讨SMB签名的安全机制与‘不安全的来宾登录’问题。提供从注册表修改到组策略配置的多层次解决方案,特别针对家庭网络和打印机共享场景给出实用建议,帮助用户在安全与便利之间找到平衡。

weixin_42556197的博客 568

spring cloud在配置zuul访问后报错,微服务响应超时问题

報錯內容: 2019-12-19 11:11:34.267 INFO 5640 --- [erListUpdater-0] c.netflix.config.ChainedDynamicProperty : Flipping property: service-ribbon.ribbon.ActiveConnectionsLimit to use NEXT property: niws.lo...

你猜博客 4334

MATLAB 设置legend加标题

x1 = linspace(0,5); y1 = sin(x1/2); plot(x1,y1) hold on x2 = [0 1 2 3 4 5]; y2 = [0.2 0.3 0.6 1 0.7 0.6]; scatter(x2,y2,'filled') hold off legend({'sin(x/2)','2016'},'Location','northwest','Orientation','horizontal')%水平 legend添加标题 lgd = legend; lgd.Fon

早起CaiCai的学习空间 4714

IEEE69节点数据(Matlab)

IEEE69节点数据(Matlab)

weixin_46039719的博客 1162

zuul网关_zuul 网关超时优化 解决问题

1. 概述前段时间,线上的服务不知道为啥,突然全部的服务都超时,所有的请求经过网关都超时,后来进行链路追踪排查,发现有一个服务链接 RDS 数据库,一个查询花费了 20S 的查询时间,导致后续调用该服务的应用都超时。然后超时的连接占满了 zuul 的转发池,最终导致了所有经过 gateway 的服务都在等待,导致全体服务全部超时。原因找出来之后,我就在纳闷,为何一个服务超时会导致所有服务...

weixin_39680380的博客 3387

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

zuul的超时配置探究

路由分类 serviceId路由,指的是ribbon负载均衡路由 routes: commandKey: path: /uri serviceId: service-id 主要核心逻辑在RibbonRoutingFilter类里,如下 这里的RibbonCommandFactory实现类有好几种,默认为HttpClientRibbonCommandFactory 一路下跟 最后核心,也就是设置超时时间的核心逻辑 url路由,不经过ribbon routes:

whatzhang007的博客 3857

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

springcloud 系列之 feign 的超时时间 和 zuul 的超时时间

今天在做熔断测试的时候 , 关闭 auth 服务 发现 zuul 抛出了一个调用超时的错误 。 com.netflix.zuul.exception.ZuulException: Hystrix Readed time out 不应该啊 , 这个时候不应该是熔断了么 。返回我降级的数据 。(如下) 但是发现并没有 { "resultCode": "000000", "re...

qq_36465337的博客 908

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

SpringCloud之Zuul网关服务

Zuul是spring cloud中的微服务网关。网关: 是一个网络整体系统中的前置门户入口。请求首先通过网关,进行路径的路由,定位到具体的服务节点上。   Zuul是一个微服务网关,首先是一个微服务。也是会在Eureka注册中心中进行服务的注册和发现。也是一个网关,请求应该通过Zuul来进行路由。   Zuul网关不是必要的。是推荐使用的。   使用Zuul,一般在微服务数量较多(多于10...

渣渣想逆袭 3366

Zuul的3种超时问题,微服务响应超时问题,Zuul配置超时时间

问题描述:采用zuul作为网关,根据不同的访问路径进行微服务的路由,譬如有个服务是user,我访问user服务的某个接口时,该接口执行时间很慢,2秒多,然后还没执行完,zuul就执行熔断了。 前提:zuul和微服务都已经注册到了eureka中,zuul采用service-id来进行路由。   关键是zuul的配置文件,通过配置不同的超时策略来完成超时处理。  注意看官方的文档:http://...

chasonli666的博客 7498
上一篇: MySQL 18.0.17部署(Windows&Linux)
下一篇: Navicat12 Linux安装
LuckyJiang.2021
博客等级 码龄15年 217粉丝 199原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LuckyJiang.2021

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值