问题描述:采用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配置超时时间相关推荐

  1. SpringCloud(第 025 篇)Zuul 路由后面的微服务挂了后,Zuul 提供了一种回退机制来应对熔断处理...

    2019独角兽企业重金招聘Python工程师标准>>> SpringCloud(第 025 篇)Zuul 路由后面的微服务挂了后,Zuul 提供了一种回退机制来应对熔断处理 一.大致 ...

  2. 几种常见的微服务架构方案简述——ZeroC IceGrid、Spring Cloud、基于消息队列

    微服务架构是当前很热门的一个概念,它不是凭空产生的,是技术发展的必然结果.虽然微服务架构没有公认的技术标准和规范草案,但业界已经有一些很有影响力的开源微服务架构平台,架构师可以根据公司的技术实力并结合 ...

  3. ASP.NET Core微服务(三)——【跨域配置】

    ASP.NET Core微服务(三)--[跨域配置] 对应练习demo(跨域)下载路径(1积分):[https://download.csdn.net/download/feng8403000/151 ...

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

    報錯內容: 2019-12-19 11:11:34.267  INFO 5640 --- [erListUpdater-0] c.netflix.config.ChainedDynamicProper ...

  5. envoy重试_具有Envoy代理的微服务模式,第二部分:超时和重试

    envoy重试 该博客是系列文章的一部分,该系列文章更深入地介绍了Envoy Proxy和Istio.io ,以及它如何实现一种更优雅的连接和管理微服务的方式. 跟随我@christianposta ...

  6. c3p0 服务启动获取连接超时_微服务架构中的熔断、降级

    微服务架构中熔断和降级是保证服务高可用的一项重要功能点,微服务区别于一体化项目的最大区别也再于熔断和降级,很多微服务项目的开发人员对熔断的理解就是当服务不可用的时候,为了让整体服务可以正常运行,需要让 ...

  7. 第二章 微服务网关基础组件 - zuul入门

    一.zuul简介 1.作用 zuul使用一系列的filter实现以下功能 认证和安全 - 对每一个resource进行身份认证 追踪和监控 - 实时观察后端微服务的TPS.响应时间,失败数量等准确的信 ...

  8. 使用Envoy代理的微服务模式,第二部分:超时和重试

    该博客是系列文章的一部分,该系列文章更深入地介绍了Envoy Proxy和Istio.io ,以及它如何实现更优雅的连接和管理微服务的方式. 跟随我@christianposta ,紧跟这些博客文章的 ...

  9. Service Mesh服务网格:8种方式简化微服务部署

    Robert Whiteley translate by Grace 基于微服务的架构是未来的趋势,但是实现这种架构会面临许多困难.现代应用架构远比过去的架构复杂,因此实现微服务架构将会带来了一系列特 ...

  10. Spring cloud 微服务架构之Ribbon/Fegin连接超时ReadTimeout问题

    问题描述: 近期用Spring cloud 开发微服务架构时候,在服务与服务之间调用调试代码时候,出现链接超时. 错误信息: Read timed out executing GET http://s ...

最新文章

  1. 推荐一个 Java 接口快速开发框架
  2. centos6.5 安装mysql5.6单实例和多实例(单配置文件)
  3. C#编译器选项(目标平台)
  4. 启明云端分享| sigmastar ssd201_ffmpeg移植
  5. Linux终端光标消失问题
  6. cordova混合开发流程
  7. 什么是pisa测试_PISA测试排名世界第一,中国教育已是世界冠军?
  8. 用SQL语句操作数据
  9. TiDB 在平安核心系统的引入及应用
  10. C语言将txt文本文档数据重新排序并放至新txt文本文档中
  11. 黑马程序员-----视频看完了,谈谈自己的感受
  12. 拟推荐全省文物系统先进_文物系统突出贡献先进个人事迹材料
  13. 越美丽的东西我越不可碰 | 天蝎座如何在黑暗中找到那束光
  14. 2021-金三银四跳槽-还愿
  15. Kaggle教程 机器学习中级3 分类变量
  16. 随机权重的PSO算法
  17. 超详细的张飞硬件90天读书笔记01
  18. 台式电脑计算机被限制,gpedit.msc 无法运行 提示本次操作由于这台计算机的限制而被取消(超强解决方案)...
  19. 博士申请 | 香港大学倪卓娴教授招收机器学习和智慧物联网方向全奖博士生
  20. JVM虚拟机读书日记4

热门文章

  1. Unix-Center.Net需要你的帮助
  2. “互联网+”带给云计算的机会
  3. 最简洁的富文本编辑器
  4. 环洋市场咨询:全球OLED收入预计2028年达到502.4亿美元
  5. 中国新型显示产业竞争格局与发展规模预测报告2022版
  6. 自组织神经网络算法-SOM
  7. android 安卓手机如何投屏到显示器
  8. Html5固定链接生成二维码的技巧
  9. 计算机桌面左侧在显示器里面,电脑屏幕显示偏左怎么解决
  10. 【Java代码之美】 -- Java11新特性解读