一、该问题的重现步骤是什么?
1. 目前服务:baldex框架基础服务 + 基于biz的三个自建服务
目前这些服务部署在服务器上,整体运行也没任何问题。
2. 当我在本地开发环境,启动自建项目,例如上图中 'dyt-sys-ZZR',是基于dyt-sys启动的本地项目,nacos中也有对应的配置文件
运行也没有任何问题。
3.当我本地项目想调用服务器上的feign,例如本地 'dyt-sys-ZZR'项目调用服务器上的'baldex-system'feign接口,会请求不到数据导致接口超时。
目前解决办法在本地启动 `baldex-system` 项目feign会调到本地,可以调通,但是不想给其他同事提供bladex源码,想在服务器上启动一套环境,让开发环境都可以调到,有什么方式解决吗?
二、你期待的结果是什么?实际看到的又是什么?
期待本地开发环境可以调通服务器上部署的feign接口。
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
bladeX
服务器Linux 本地Windows
四、请提供详细的错误堆栈信息,这很重要。
五、若有更多详细信息,请在下面提供。
本地启动网关注册到服务器的nacos,然后服务器的服务启动的时候手动指定ip地址和端口注册到nacos。这样本地启动Gateway的时候,去调用服务器的blade-system服务,就是直接访问的外网地址了,就可以调通。
还有种办法是你给blade-system服务打成jar包,然后让同事本地启动jar包来进行调试。或者你本地启动blade-system,来调用的时候,请求你的ip地址。这些都可以,核心就是保证网络要互通。
本地启动gateway后,指定优先调用的ip可以参考这里:https://center.javablade.com/blade/BladeX-Doc/src/branch/master/%E7%AC%AC5%E7%AB%A0%20%E5%8A%9F%E8%83%BD%E7%89%B9%E6%80%A7/5.19%20%E5%9B%A2%E9%98%9F%E5%8D%8F%E4%BD%9C%E8%87%AA%E5%AE%9A%E4%B9%89%E8%B4%9F%E8%BD%BD%E9%85%8D%E7%BD%AE.md
jar包的方式在我提问前就试过了,会导致服务器上的环境请求bladex接口没问题,每次请求自建服务的接口就会直接退出登录,退回到登录页面,不知道什么问题导致的。
本地启动gatway方式:
1、本地的gatway启动 是不是服务器上的gatway就需要先停止
2、服务器的服务启动的时候手动指定ip地址和端口注册到nacos,具体是怎么手动指定呢?
目前按照你的方式:
1、在需要负载的服务添加依赖(我理解的是要调用的服务,例如`bladex-system`或自建的服务)
2、本地gateway启动,加了一个优先调用的ip段,这里配置的是nacos里的,即docker-compose里配置的
3、由本地的gateway访问doc文档,文档中的接口均为正常展示
帮忙看下问题。谢谢
服务器的Gateway不用关闭,可以本地启动后访问本地的Gateway来实现自定义负载。到这里打断点看看获取的服务是不是你调用的
另外如果你是用docker部署,注册到nacos的是子网ip,比如172.x.x.x,你其他的机子去访问,是绝对不可能调通的。你需要用vpn才能让网络互联,具体vpn怎么配置需要找负责网络的同事来配置。
自定义注册到nacos可以参考如下
// 指定注册IP PropsUtil.setProperty(props, "spring.cloud.nacos.discovery.ip", "127.0.0.1"); // 指定注册端口 PropsUtil.setProperty(props, "spring.cloud.nacos.discovery.port", "8200"); // 自定义命名空间 PropsUtil.setProperty(props, "spring.cloud.nacos.config.namespace", LauncherConstant.NACOS_NAMESPACE); PropsUtil.setProperty(props, "spring.cloud.nacos.discovery.namespace", LauncherConstant.NACOS_NAMESPACE); // 自定义分组 PropsUtil.setProperty(props, "spring.cloud.nacos.config.group", NacosConstant.NACOS_CONFIG_GROUP); PropsUtil.setProperty(props, "spring.cloud.nacos.discovery.group", NacosConstant.NACOS_CONFIG_GROUP);
如果docker内网与开发机的网络调通不了,建议用jar包在服务器启动,这样你只需要保证服务器的端口开放并且ip能被开发机连通就行了。
目前按照你的方式,在服务器上使用jar包的方式启动了blade-system,也成功注册到nacos
同时部署的时候也引入了依赖
本地gateway启动加入优先调用ip段
启动后打开接口文档依然没法正常访问
断点
这里是哪里出现的问题呢?
现在jar包是在服务器的虚拟机中启动,虚拟机的防火墙已经关闭。
本地启动的gateway无法访问,但是在服务器部署的gateway是可以正常访问baldex服务的,自建服务全部失效,现在整个流程还是一知半解,能否详细解惑?
没什么复杂的东西,就是本地gateway去nacos请求对应服务,获取到ip和端口后在你本地开发机调用这个ip和端口。本地能联通就能调用,网络不通就没法调用。
这个注册的ip你可以自由控制,先确保只有一个ip,把docker注册的172开头的都下线。然后再测试链接。
扫一扫访问 Blade技术社区 移动端