一、该问题的重现步骤是什么?
1.
2. 我在bladex的resource服务做了修改,增加了其他微服务可以使用Feign调用resource微服务的功能,当我在开发电脑上启动修改好的resource微服务时,我在biz工程里可以正常调用,但是,我把修改好的resource微服务部署到局域网里的开发服务器后,(通过上传镜像,重构resource的容器),确无法调用。我原来以为可能是防火墙的关系,打开resource容器内部端口映射8010,并且打开服务器上的防火墙端口后,还是不能通过在开发机上的biz的Feign访问resource。
开发机,访问这个(局域网里的开发服务器),是不是这种情况应该是走网关服务了吧。就必须要有token是吧。否则,Feign调用无法?@翼宿-提问到社区-私服地址看公告 。这个我该怎么解决部署问题?这种情况下,开发机如何能访问修改好的在开发服务器上的resource服务吗?从而不需要我在本地运行resource服务
3.
二、你期待的结果是什么?实际看到的又是什么?
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
四、请提供详细的错误堆栈信息,这很重要。
五、若有更多详细信息,请在下面提供。
如果本地调用可行,就说明程序没有问题。
部署后无法访问,需要从多层方面考虑,较大的可能是网络不通,gateway无法调用resource服务,或者本地网关网络不通等等原因。
最好是你在resource服务的feign实现类打打点log,看看resource服务被feign调用的时候打印出来的日志是什么。如果日志都没有就说明直接没有调用到了,如果有日志,则有可能是内部其他原因,要再进一步去排查。
翼总,不好意思。最近一直没空研究代码,这两天刚捡起来。我跟踪了下,如果把修改后的resource微服务部署到开发服务器后,通过分布式日志跟踪了下,发现没有执行到相关业务逻辑。
我想了下,是不是因为我修改Feign的时候,修改了resource api,见图:
当部署到开发服务器后,是不是网关的微服务也要更新镜像,更新容器。不然是不是没法引入本地maven的resource api的引用呢。。。该怎么处理和排查呢。是否还有啥思路?
另外,我也进入开发服务器的resource微服务中,查看生成app.jar。解压后发现有Feign目录,版本应该是新的。
我尝试在开发机的路由表上,加了静态路由,如图:
仍然有问题。
=============
错误如图:
日志截图:
发现加了路由表也ping不通,是不是网络上的问题。我路由照理说应该有了,我重启下路由表加载试试
=========
解决了,就是网络的问题。参考:https://sns.bladex.cn/q-6865.html,把resource服务从容器中暴露出来宿主机的地址,就正常了
如果resoucre-api有变动,那需要重新构建maven依赖,如果没有私服的话,到服务器本机执行mvn clean install。然后重新构建引用了resource-api的服务再重新启动。
如果服务器上部署后的服务中,其他的feign可以调用,只有resource的feign无法调用,那可以判断为网络没有问题,是resource修改后导致的问题。
这种情况推荐maven完整install后,所有的docker服务也重新构建一遍再启动,看看还有没有这个问题。
扫一扫访问 Blade技术社区 移动端