情况:
分别将多个模块部署到不同的服务器上
出现不同模块之间调用不通
环境:阿里云服务器
框架:RuoYi-Cloud
容器引擎:Docker
前置条件
(这里默认已经完成打包,部署)
需要在阿里服务器上配置对应的安全组规则
情况与解决方案
1.gateway模块和system模块不在同一个服务器,前端发送的地址,在gateway中匹配,去拿nacos中记录的地址ip(这个ip调不通,问题所在)
nacos配置的yaml文件里,对gateway的yaml文件进行操作
如果和 gateway 模块不在同一个docker
这里的 uri 需要配置具体的 http://xxx.xxx.xxx.xxx:port/
如
routes:
# 认证中心
- id: neet-auth
# 如果和 gateway 模块不在同一个docker
# 这里的 uri 需要配置具体的 http://ip:port/
# uri: lb://ruoyi-auth 要改成 http://ip:port/
predicates:
- Path=/auth/**
2.gateway成功转发出去,但是feign调用失败
(具体情境:auth模块和system模块不在同一个服务器,auth模块中通过feign远程调用system模块里面的接口,出现超时问题)
与上一个类似
在api模块,对@FeignClient()注解进行操作
@FeignClient(contextId = "remoteUserService",name = ServiceNameConstants.SYSTEM_SERVICE , url = ServiceNameConstants.SYSTEM_SERVICE_URL,fallbackFactory = RemoteUserFallbackFactory.class)
不在是通过名字去找,而是给具体的url