修改了框架的resource微服务,增加了Feign调用响应。但是调试时,开发机本机可行,但调用开发服务器上的resource无法访问

Blade 未结 2 1096
菲哥
菲哥 剑圣 2021-09-20 10:42

一、该问题的重现步骤是什么?

1. resource-error.png

2. 我在bladex的resource服务做了修改,增加了其他微服务可以使用Feign调用resource微服务的功能,当我在开发电脑上启动修改好的resource微服务时,我在biz工程里可以正常调用,但是,我把修改好的resource微服务部署到局域网里的开发服务器后,(通过上传镜像,重构resource的容器),确无法调用。我原来以为可能是防火墙的关系,打开resource容器内部端口映射8010,并且打开服务器上的防火墙端口后,还是不能通过在开发机上的biz的Feign访问resource。

  开发机,访问这个(局域网里的开发服务器),是不是这种情况应该是走网关服务了吧。就必须要有token是吧。否则,Feign调用无法?@翼宿-提问到社区-私服地址看公告 。这个我该怎么解决部署问题?这种情况下,开发机如何能访问修改好的在开发服务器上的resource服务吗?从而不需要我在本地运行resource服务

3.resource-1.png


resource-error2.png


二、你期待的结果是什么?实际看到的又是什么?


三、你正在使用的是什么产品,什么版本?在什么操作系统上?


四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。

2条回答
  • 2021-09-22 16:00

    如果本地调用可行,就说明程序没有问题。

    部署后无法访问,需要从多层方面考虑,较大的可能是网络不通,gateway无法调用resource服务,或者本地网关网络不通等等原因。

    最好是你在resource服务的feign实现类打打点log,看看resource服务被feign调用的时候打印出来的日志是什么。如果日志都没有就说明直接没有调用到了,如果有日志,则有可能是内部其他原因,要再进一步去排查。

    0 讨论(0)
  • 2021-11-23 16:29

    no hit.png

    翼总,不好意思。最近一直没空研究代码,这两天刚捡起来。我跟踪了下,如果把修改后的resource微服务部署到开发服务器后,通过分布式日志跟踪了下,发现没有执行到相关业务逻辑。

    我想了下,是不是因为我修改Feign的时候,修改了resource api,见图:

    resource api.png

    当部署到开发服务器后,是不是网关的微服务也要更新镜像,更新容器。不然是不是没法引入本地maven的resource api的引用呢。。。该怎么处理和排查呢。是否还有啥思路?


    另外,我也进入开发服务器的resource微服务中,查看生成app.jar。解压后发现有Feign目录,版本应该是新的。

    feign.png

    我尝试在开发机的路由表上,加了静态路由,如图:

    rout.png

    仍然有问题。

    =============

    错误如图:

    error1.png

    日志截图:

    log.png

    log2.png

    log3.png


    log4.png

    发现加了路由表也ping不通,是不是网络上的问题。我路由照理说应该有了,我重启下路由表加载试试


    =========

    解决了,就是网络的问题。参考:https://sns.bladex.cn/q-6865.html,把resource服务从容器中暴露出来宿主机的地址,就正常了

    作者追问:2021-11-24 20:30

    如果resoucre-api有变动,那需要重新构建maven依赖,如果没有私服的话,到服务器本机执行mvn clean install。然后重新构建引用了resource-api的服务再重新启动。

    如果服务器上部署后的服务中,其他的feign可以调用,只有resource的feign无法调用,那可以判断为网络没有问题,是resource修改后导致的问题。

    这种情况推荐maven完整install后,所有的docker服务也重新构建一遍再启动,看看还有没有这个问题。

    0 讨论(0)
提交回复