测试访问时长

修改下业务类,增加sleep休眠时长,以此查看Zuul的熔断

@GetMapping("/test1")
public Object test1() {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return "dbToEs";
} @GetMapping("/test2")
public Object test2() {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return "dbToEs";
} @GetMapping("/test3")
public Object test3() {
try {
Thread.sleep(5500);
} catch (InterruptedException e) {
e.printStackTrace();
}
return "dbToEs";
}

大概执行2秒多,然后还没执行完,zuul就执行熔断了。

报错信息

com.netflix.zuul.exception.ZuulException:Forwarding error 

Caused by: java.lang.RuntimeException: java.net.SocketTimeoutException: Read timed out

Caused by: java.net.SocketTimeoutException: Read timed out

很明显,根据报错信息,应该是zuul的调用等待时间超时

解决办法

如果路由方式是serviceId的方式,配置ribbon生效,如果是url的方式,则配置zuul.host生效。(此处重要!使用serviceId路由和url路由是不一样的超时策略)

如果你在zuul配置了熔断(fallback)的话,hystrix熔断超时也要配置,不然如果你配置的ribbon超时时间大于hystrix熔断的超时,那么会先走hystrix熔断,相当于你配的ribbon超时就不生效了。

以下是两种配置文件的方式,可根据需要选取配置。

配置application.yml文件

hystrix:
command:
my-userService:
execution:
isolation:
thread:
timeoutInMilliseconds:6000 ribbon:
NIWSServerListClassName:com.netflix.loadbalancer.ConfigurationBasedServerList  #可不写
ListOfServers:http://example1.com,http://example2.com   #可不写 (负载配置)
ConnectTimeout:10000
ReadTimeout:3000
MaxTotalHttpConnections:5000
MaxConnectionsPerHost:1000 zuul:
max:
host:
connections: 10000
host:
socket-timeout-millis: 6000
connect-timeout-millis: 6000

配置application.properties文件

hystrix.command.eureka-consumer.execution.isolation.thread.timeoutInMilliseconds=10000

#ribbon.eureka.enabled= false #这一行我是注掉的,因为在我项目内报错,主要看大家的项目
ribbon.NIWSServerListClassName=com.netflix.loadbalancer.ConfigurationBasedServerList #可不写
ribbon.ListOfServers=http://example1.com,http://example2.com #可不写(负载配置)

ribbon.ReadTimeout=8000
ribbon.ConnectTimeout=10000
ribbon.SocketTimeout=8000 zuul.max.host.connections=10000
zuul.host.socket-timeout-millis=6000
zuul.host.connect-timeout-millis=6000

文章转载至:https://blog.csdn.net/tianyaleixiaowu/article/details/78772269https://www.cnblogs.com/dauber/p/9424505.html

SpringCloud:Zuul路由配置超时问题的更多相关文章

  1. SpringCloud Zuul 路由映射规则配置

    阅读目录 前言 快速入门 路由详解 Cookie与头信息 本地跳转 Hystrix和Ribbon支持 过滤器解释 动态加载 后记 回到目录 前言 本文起笔于2018-06-26周二,接了一个这周要完成 ...

  2. SpringCloud学习系列之七 ----- Zuul路由网关的过滤器和异常处理

    前言 在上篇中介绍了SpringCloud Zuul路由网关的基本使用版本,本篇则介绍基于SpringCloud(基于SpringBoot2.x,.SpringCloud Finchley版)中的路由 ...

  3. Spring Cloud(Dalston.SR5)--Zuul 网关-路由配置

    Spring Cloud 在 Zuul 的 routing 阶段实现了几个过滤器,这些过滤器决定如何进行路由工作. 简单路由(SimpleHostRoutingFilter) 该过滤器运行后,会将 H ...

  4. springcloud Zuul中路由配置细节

    上篇文章我们介绍了API网关的基本构建方式以及请求过滤,小伙伴们对Zuul的作用应该已经有了一个基本的认识,但是对于路由的配置我们只是做了一个简单的介绍,本文我们就来看看路由配置的其他一些细节. 首先 ...

  5. SpringCloud:路由ZUUL的配置详解

    以下是两种配置文件的配置方式,可以根据需要选取对自己项目有利的配置. 自定义访问路径(path) 配置application.yml文件 #provider-user:是你的微服务模块的名称,及spr ...

  6. SpringCloud 进阶之Zuul(路由网关)

    1. Zuul(路由网关) Zuul 包含了对请求的路由和过滤两个最主要的功能; 路由功能:负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础; 过滤功能:负责对请求的处理过程进行干 ...

  7. SpringCloud学习笔记(八):Zuul路由网关

    概述 是什么? Zuul包含了对请求的路由和过滤两个最主要的功能: 其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础而过滤器功能则负责对请求的处理过程进行干预,是实现请 ...

  8. SpringCloud与微服务Ⅸ --- Zuul路由网关

    一.Zool是什么 Zuul包含了对请求路由和过滤两个最主要的功能: 其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础而过滤器功能则负责对请求的处理过程进行干预,是实现 ...

  9. 【springcloud】Zuul高级配置(zuul--2)

    转自:https://blog.csdn.net/pengjunlee/article/details/87162192 自定义路由规则 在<API Gateway 的路由和过滤(Zuul)&g ...

随机推荐

  1. mysql开启远程访问和oracl用户锁定问题

    开启mysql远程访问 Grant all privileges on *.* to 'root'@'%' identified by 'root'; Flush privileges; oracl锁 ...

  2. nginx 的基础知识(二)

    Nginx 多进程网络模型 进程模型 nginx启动后以daemon的方式在后台运行,后台进程包括一个master进程和多个worker进程 master进程主要作用,接收来自外界的信号:向各work ...

  3. SpringBoot + WebSocket 实现答题对战匹配机制

    概要设计 类似竞技问答游戏:用户随机匹配一名对手,双方同时开始答题,直到双方都完成答题,对局结束.基本的逻辑就是这样,如果有其他需求,可以在其基础上进行扩展 明确了这一点,下面介绍开发思路.为每个用户 ...

  4. node.js学习(1)全局对象

    1 计时器 1)三秒后执行 2) 每隔2秒执行一次 3)清除计时器 2 全局对象 1)当前文件所在目录 2)当前文件路径

  5. ISP算法高水平分析(上)

    ISP算法高水平分析(上) 一.ISP基本框架及算法介绍 ISP是Image Signal Processor的缩写,全称是影像处理器.在相机成像的整个环节中,它负责接收感光元件(Sensor)的原始 ...

  6. Xshell6会话管理器无意中关闭,在哪里打开

    一.进入查看 二.勾选则弹出,然后双击窗口即可

  7. vue中dom节点转图片

    今天项目中有个需求,需要将页面的一部分转为图片,相当于存证之类的 然后我查阅了下百度,发现了几种可行的方法,特此来记录下 1.html2canvas插件 安装:npm install --save h ...

  8. python+selenium基础篇,句柄操作(多个页面切换)

    1.我们打开网页有时候会开出多个页面,导致我们常常定位不到我们需要的元素,这种情况可能就是句柄的因素,如下图所示: 2.句柄切换代码如下: from selenium import webdriver ...

  9. pytest基础简介及实践举例

    一.pytest简介 pytest 是 python 的第三方单元测试框架,比自带的 unittest 更简洁和高效,同时兼容 unittest 框架.它还有如下优点: 1.简单灵活,容易上手,文档丰 ...

  10. 一、安装Tomcat服务器

    [root@ web1 ~]# yum -y install java-1.8.0-openjdk   #安装jdk [root@web1 ~]# yum -y install java-1.8.0- ...