springcloud之Feign(nacos组件中的)调用超时问题(feign.RetryableException: Read timed out executing GET http://)

1、报错日志如下:

Binary data
2020-11-11 19:47:07.894 ERROR c.n.c.c.r.e.GlobalExceptionHandler:72 - errorMsg=Read timed out executing GET http://XXXXXXX,innerCode=5000,exception={}
feign.RetryableException: Read timed out executing GET http:// XXXXXXXX
	at feign.FeignException.errorExecuting(FeignException.java:132)
	at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMet

解决方案

首先,我们看下Feign的简介

Feign 是一个声明式的web服务客户端,这便得编写web服务客户端更容易,使用Feign 创建一个接口并对它进行注解,它具有可插拔的注解支持包括Feign注解与JAX-RS注解,Feign还支持可插拔的编码器与解码器,Spring Cloud 增加了对 Spring MVC的注解,Spring Web 默认使用了HttpMessageConverters, Spring Cloud 集成 Ribbon 和 Eureka 提供的负载均衡的HTTP客户端 Feign.

即,Feign接口调用分两层,Ribbon的调用Hystrix调用,理论上设置Ribbon的时间即可,但是Ribbon的超时时间和Hystrix的超时时间需要结合起来,按照木桶原则最低的就是Feign的超时时间,建议最好配置超时时间一致。经过配置一下application设置后,完美解决了问题。因为第三方接口中需要3~50秒不等的时间,所以这个数值也是根据自己的业务系统情况设置的。

看了下配置文件,好像配置了时间相关的参数,中间带有横杠 "-", 比如:read-timeout ,仔细一查,此类参数在nacos环境下失效,只能用 ReadTimeout  这种,试了一下果然如此,成功解决。

application.yml

#ribbon的超时时间
ribbon:

  # read-timeout: 60000  失效参数
  # connect-timeout: 60000  失效参数
  ReadTimeout: 60000
  ConnectTimeout: 60000

2、用nacos做注册中心,报错日志如下:

feign.FeignException$ServiceUnavailable: [503] during [POST] to [http://localhost:30000/api/dbsource//exist?tenantId=test] 
	[ErpxDbSourceClient#boolExistDb(String)]:
	[{"timestamp":"2022-09-07T03:32:53.168+00:00","path":"/api/dbsource//exist","status":503,"error":"Service Unavailable","requestId":"505fb311"}]
	at feign.FeignException.serverErrorStatus(FeignException.java:237)

    503 没有找到启动的服务,原因如下:

1)、需要调用的服务没有启动  

2)、启动的服务和网关服务没有在一个组里,导致服务注册时没有拉取到。

3)、网关服务少引入jar了

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-loadbalancer</artifactId>
</dependency>

参考文章​​​​​​​ 

3、报错日志:

原因被调用的服务已经启动(别人本地服务也注册了),导致fegin 调用时调到了别人的服务,给自己造成了困扰、怎么解决呢?分组策略如下:

怎么分组有两个方案:

1)、自己单独创建一个group组;

2)、yaml配置里面添加一个新组,discovery.group.nandao-dev

后期持续更新,继续分享,敬请期待。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

寅灯

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

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

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

打赏作者

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

抵扣说明:

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

余额充值