@FeignClient 调用另一个服务的test环境,实际上却调用了另一个环境testone的接口,这其中牵扯到k8s容器外容器内的问题,注册到eureka上的是容器外的旧版本

今天遇到了很奇葩的问题,我本机的是以test环境启动的,调用另一个服务接口的时候返回参数却不同,调用接口是没错,怎么会这样,排查了很久,发现在eureka上注册的另一个服务是testone环境,而这个人testone是在k8s容器外面, 我部署的另一个服务是在k8s容器内部的。所以,造成了一直在调用k8s容器外同一个服务,实际我要调用k8s内部的这个服务。

 

下面是截图大概介绍下步骤:

首先,先排查   active profiles 配置启动环境为test, 并确保启动成功(启动成功后的日志显示test)

 

其次,把需要调用的另一方服务部署在test环境并启动(我们公司自己的项目,所以,我可以部署),然后到eureka上查询到此项目,可以看到有两个地址,然后点击上面打开,会看到地址,然后,此地址端口号后面写上swagger,到swagger上找到此项目的接口,可以看到正好是我刚才调用的接口,但是参数是旧参数,这个地址所在的服务项目,虽然也是我需要的,但是,这个在k8s容器外面,我没有部署最新版(因为我们的服务都移动k8s容器里了,外面的都弃用),而注册到eureka是容器外的,所以,要么让容器内的注册到eureka上,要么部署容器外的最新版项目。

 

还有一点需要注意,我当前调试运行的自己的项目是位于k8s容器内部。

 

 

posted @ 2019-06-19 23:07  封狼居胥_神都  阅读(738)  评论(0编辑  收藏  举报