近期用Spring cloud 开发微服务架构时候,在服务与服务之间调用调试代码时候,出现链接超时。

错误信息:

Read timed out executing GET http://service-batch/batchmanagement/datatransfer/querybyplanid?planid=PL00000102。

发生原因:
用IDE开发Debug模式调试代码时候,在处理该服务与其他服务调用时候,由于debug模式调试代码花费一些时间,结果出现Fegin 连接超时问题。

解决办法:

在application.properice属性文件中添加

#Fegin 连接超时

ribbon.ReadTimeout=60000
ribbon.ConnectTimeout=60000
ribbon.MaxAutoRetries=0
ribbon.MaxAutoRetriesNextServer=1

技术讲解:

微服务间调用其实走的是http请求,debug了一下默认的ReadTimeout时间为5s,ConnectTimeout时间为2s,

我使用的是Fegin进行微服务间调用,底层用的还是Ribbon。

微服务 治理 Spring Cloud 工具套件为 微服务 治理提供了全面的技术支持。这些治理工具主要包括服务的注册与发现、负载均衡管理、动态路由、服务降级和故障转移、链路跟踪、服务监控等。 微服务 治理的主要功能组件如下: 注册管理服务组件Eureka,提供服务注册和发现的功能。 负载均衡服务组件 Ribbon ,提供负载均衡调度管理的功能。 边缘代理服务组件Zuul,提供网关服务和动态路由的功能。 断路器组件Hystrix,提供容错机制、服务降级、故障转移等功能。 聚合服务事件流组件Turbine,可用来
在使用 Spring Cloud 进行服务间调用时出现 连接 超时 的错误,错误信息: Read time d ou t executing GET http://service-batch/batchmanagement/datatrans fe r/querybyplanid?planid=PL00000102。 用idea开发debug模式调试代码时,在处理服务间调用时,由于debug模式调试代码花费... # Ribbon 允许最大 连接 数,即所有后端 微服务 实例请求并发数之和的最大值。 MaxTotalConnections: 500 #单个后端 微服务 实例能接收的最大请求并发数 MaxConnectionsPerHost: 500 Read Timeout : 2000 Connect Time ou ...
最近在学习 spring cloud 微服务 ,在使用open fe ign时,需要使用 ribbon 组件的Connect TimeOut Read TimeOut 功能,代码示下: @GetMapping(value = "/payment/ fe ign/ timeOut ") public String payment TimeOut (){ //设定暂停3秒,open Fe ign默认等待时间一秒 Time Unit.SECONDS.sleep(3
​前段产品自测阶段,发现了一个令人头疼的 问题 ,服务启动之后,总是在一段时间之内 time ou t。扒拉了许久代码,发现是网关中 ribbon 超时 配置不管用,还是默认配置,而本地环境启动访问太多,总是时不时就 超时 了。于是,决定深入研究一下。 配置如下: ribbon : httpclient: enabled: true max-connection...
通过 查看 spring - cloud -netflix- ribbon 下的配置类 Ribbon ClientConfiguration 这个类,可以看到DEFAULT_CONNECT_ TIMEOUT =1000即默认 连接 超时 时间是1秒,DEFAULT_ READ _ TIMEOUT = 1000,读取数据 超时 时间为1秒。 @SuppressWarnings("deprecation") @Configuration @EnableConfigurationProperties //Order is important h
关于 ribbon 组件的Connect TimeOut Read TimeOut 功能失效 问题 处理 这几天在自学 Spring Cloud 学到 Fe ign的时候需要验证 超时 问题 ,使用配置 ribbon .Connect TimeOut Read TimeOut 无效。 百度后说了一大堆,很多都是新写配置类乱七八糟的处理。 原先就能配置的东西为什么要用配置类去实现,然后我稍微换个思路寻找后发现下面这个配置可以使用。 为了防止有人不会点击复制,直接用Ctrl+C会有乱七八糟的其他内容,这边直接贴原文。 fe ign: client: 3.业务系统shop-business 4.用户服务shop-user-center 二、 问题 ,现在我是在shop-bussiness系统中使用 fe ign调用shop-user-center的接口 1.shop-user-center 2.shop-business中的 fe ign接口: 3.shop-business中的 fe ign接口使用 可以看出在图一中我设置sleep时间为7秒,最开始我自己不设置 超时