0


Feign由于调用服务出现超时导致的问题

📣文章目录

1.起因

 通过FeignClient指定服务名称,在从eureka获取一个服务的实例ip和端口,来调用某个接口获取数据出现,超时的情况!

在调用

spu/page

接口出现超时的情况

feign.RetryableException: Read timed out executing GET http://item-service/spu/page?page=1&rows=100

在这里插入图片描述
设置Feign的配置接口

@FeignClient("item-service")//调用item-service服务

在这里插入图片描述

GoodsApi

:里面定义了公共的接口,这样一来那些服务需要使用只要继承该接口就可以实现,里面配置的调用方法,这样一来以后需要新增加某个接口我只要在

GoodsApi

中定义就可以,子类就会继承父类的方法!
在这里插入图片描述

2.排查

1.Eureka问题

一开始为以为是eureka服务没有被启动于是我就访问了eureka服务界面,可以看出服务是有启动的
在这里插入图片描述
并且我也在程序出现错误日志里面查看到了从eureka中获取到的服务地址
在这里插入图片描述

2.项目服务的问题

在想有没有可能是因为item-service服务的程序出现错误导致的超时,于是为就在服务调用的接口打上断点,可以看出请求已经到查询商品的服务接口了,也可以正常查询到数据,这个时候我就在想,有没有可能是因为为服务的接口查询的数据比较久(因为数据库是在外网不在本地可能网络原因导致查询慢)从而

导致Feign以为服务超时了

在这里插入图片描述
并且我还通过浏览器访问,服务的ip:端口,查询了下数据页可以正常显示,就是慢了点
在这里插入图片描述

3.解决问题

如果是超时导致的那么我就只要设置下feign的超时时间就可以解决了,对配置文件(application.yml)中添加以下配置

feign:
  client:
    config:
      default:
        connectTimeout: 10000 #单位毫秒
        readTimeout: 10000 #单位毫秒

接着为在运行测试用例,可以看出数据已经被获取到了
在这里插入图片描述


本文转载自: https://blog.csdn.net/qq_45502336/article/details/123292950
版权归原作者 Hi梅 所有, 如有侵权,请联系我们删除。

“Feign由于调用服务出现超时导致的问题”的评论:

还没有评论