feign.RetryableException: Connect to 地址 failed: connect timed out executing 

报错因素:调用另一个服务连接超时

本地启动项目服务根据报错信息发现调用另一个服务连接超时,为什么会这个样子呢?

原因:

我们现在的项目相比都是分布式微服务吧,各个服务之间相互调用,也肯定有注册中心,当然我们的项目的注册中心就是Eureka,

之前在启动服务进行服务之间相互调用就没有问题为什么这次就有问题呢?

首先作为注册中心的Eureka,可以查看

找到配置文件application.properties查看其中的生效配置文件

然后找到相应的文件,我这里是application-dev.properties,在文件中找到配置Eureka的位置

复制链接,记得删除链接后的/eureka,否则页面不出来

Eureka页面中是所有该环境(你配置文件所指向的环境,我这里指向的是dev)中启动的服务,包含各个工作人员本地所起的服务,部署在dev服务器主机上的服务(永久启动不停机),这些服务都会注册在Eureka中在这个页面中都能Ctrl+F找到.

部署在dev服务器主机上的服务是永久启动不停机的,dev服务器主机上的服务就是咱们开发项目中所有的服务都会在上边部署启动,所以是不停机的,我们开发人员在本地或者dev测试调用其他服务的时候都是调用的dev服务器主机上的部署服务,如果停机那么在此环境就调不通各个服务,并且我们每次在堡垒机上重启某个环境的服务就是重启的主机上部署的服务.

回归正题,为什么会连接超时?

正常情况下我们调用主机上的服务,服务的地址为公有的,而不是私有的

这样我们本地起服务就能调用公网中的服务,调不到就可能是该服务的地址为私网,那么使用cmd  ipconfig一下查看自己电脑的ip,自己的肯定是私有的10.开头的,跟自己要调用的服务一对比,它是私有的我们就肯定调不到了呀,地址的局域性就不一样!!

那么就换个环境测  比如test环境,在test环境的配置文件中查找对应的Eureka地址查看test主机上的服务ip 如果是公网那么就可以在这个环境进行测试

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐