问题描述
网关配置进行动态路由分配给对应服务器。
原因分析
查了资料说是版本问题,但使用的也是官方给的最新版本,后来降低版本也没有把问题解决。但直接使用 ip + 端口 连接可以使用。
更换低版本
ip + 端口能够使用
后来也陆续查了很多资料都没有找到解决方法,因为出现的问题是找到不服务器,就试试,是不是不同命名空间的影响。之前注册中心和配置中心的共用一个命名空间,不同模块命名空间互不相同。导致在服务列表里面不同服务需要在各自的命名空间中才能找到。
解决方案
将所有服务注册中心共用一个命名空间。
之前 bootstrap.yml 配置
server:
port: 88
spring:
application:
name: gulimall-gateway
profiles:
active: dev
cloud:
nacos:
server-addr: localhost:8848
discovery:
namespace: d01c2957-8aee-4b04-bf36-0786eda976d8
# config:
# namespace: d01c2957-8aee-4b04-bf36-0786eda976d8
---
spring:
profiles: dev
cloud:
nacos:
# 注册中心
discovery:
server-addr: ${spring.cloud.nacos.server-addr}
group: ${spring.profiles.active}
# 配置中心 拉取配置
config:
server-addr: ${spring.cloud.nacos.server-addr}
namespace: ${spring.cloud.nacos.discovery.namespace}
group: ${spring.profiles.active}
file-extension: yml
# extension-configs[0]:
shared-configs[0]:
data-id: gateway-config-dev.yml
group: dev
refresh: true
server:
port: 9000
spring:
application:
name: gulimall-product
#项目环境 激活 dev
profiles:
active: dev
cloud:
nacos:
server-addr: 127.0.0.1:8848
discovery:
namespace: 14845d1e-9025-4d4c-8227-cbb2ee7febd7
# config:
# namespace: 14845d1e-9025-4d4c-8227-cbb2ee7febd7
---
#当spring.profiles.active=test 时读取此配置
spring:
profiles: test
cloud:
nacos:
discovery:
server-addr: ${spring.cloud.nacos.server-addr}
# nacos创建的命名空间id
namespace: ${spring.cloud.nacos.discovery.namespace}
#配置分组
group: ${spring.profiles.active}
#拉取配置-指定注册中心地址
config:
server-addr: ${spring.cloud.nacos.server-addr}
namespace: ${spring.cloud.nacos.discovery.namespace}
group: ${spring.profiles.active}
# 配置文件类型 文件名称规则 spring.application.name+spring.profiles.active+file-extension
file-extension: yml
---
#当spring.profiles.active=dev 时读取此配置 注册中的 namespace 表示在该命名空间中运行的服务
spring:
profiles: dev
cloud:
nacos:
# 注册中心
discovery:
server-addr: ${spring.cloud.nacos.server-addr}
group: ${spring.profiles.active}
# 配置中心 拉取配置
config:
server-addr: ${spring.cloud.nacos.server-addr}
namespace: ${spring.cloud.nacos.discovery.namespace}
group: ${spring.profiles.active}
file-extension: yml
# prefix: field_config
#
# # 是否开启配置中心 默认true
# enabled: true
# # 配置中心地址
# server-addr: localhost:8848
# # 配置文件后缀
# file-extension: yml
# # 配置对应的分组
# group: PEARL_GROUP
# # 命名空间 常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等
# namespace: 14845d1e-9025-4d4c-8227-cbb2ee7febd7
# # Nacos 认证用户
# username: nacos
# # Nacos 认证密码
# password: nacos
#
# 支持多个共享 Data Id 的配置,优先级小于extension-configs,自定义 Data Id 配置 属性是个集合,内部由 Config POJO 组成。Config 有 3 个属性,分别是 dataId, group 以及 refresh
extension-configs[0]:
data-id: datasource.yml # 配置文件名-Data Id
group: dev # 默认为DEFAULT_GROUP
refresh: true # 是否动态刷新,默认为false
extension-configs[1]:
data-id: mybatis-plus.yml
group: dev
refresh: true
extension-configs[2]:
data-id: field.yml
group: dev
refresh: true
---
#当spring.profiles.active=uat 时读取此配置 3f55c196-4014-4d1d-ad98-dc381b75ed5c
spring:
profiles: uat
cloud:
nacos:
#拉取配置-指定注册中心地址
config:
server-addr: ${spring.cloud.nacos.server-addr}
group: ${spring.profiles.active}
file-extension: yml
discovery:
server-addr: ${spring.cloud.nacos.server-addr}
namespace: ${spring.cloud.nacos.discovery.namespace}
group: ${spring.profiles.active}
---
#当spring.profiles.active=prod 时读取此配置
spring:
profiles: prod
cloud:
nacos:
discovery:
server-addr: ${spring.cloud.nacos.server-addr}
group: ${spring.profiles.active}
#拉取配置-指定注册中心地址
config:
server-addr: ${spring.cloud.nacos.server-addr}
namespace: ${spring.cloud.nacos.discovery.namespace}
group: ${spring.profiles.active}
file-extension: yml
修改后
server:
port: 88
spring:
application:
name: gulimall-gateway
profiles:
active: dev
cloud:
nacos:
server-addr: localhost:8848
# discovery:
# namespace: d01c2957-8aee-4b04-bf36-0786eda976d8
config:
namespace: d01c2957-8aee-4b04-bf36-0786eda976d8
---
spring:
profiles: dev
cloud:
nacos:
# 注册中心
discovery:
server-addr: ${spring.cloud.nacos.server-addr}
group: ${spring.profiles.active}
# 配置中心 拉取配置
config:
server-addr: ${spring.cloud.nacos.server-addr}
# namespace: ${spring.cloud.nacos.discovery.namespace}
group: ${spring.profiles.active}
file-extension: yml
# extension-configs[0]:
shared-configs[0]:
data-id: gateway-config-dev.yml
group: dev
refresh: true
server:
port: 88
spring:
application:
name: gulimall-gateway
profiles:
active: dev
cloud:
nacos:
server-addr: localhost:8848
# discovery:
# namespace: d01c2957-8aee-4b04-bf36-0786eda976d8
config:
namespace: d01c2957-8aee-4b04-bf36-0786eda976d8
---
spring:
profiles: dev
cloud:
nacos:
# 注册中心
discovery:
server-addr: ${spring.cloud.nacos.server-addr}
group: ${spring.profiles.active}
# 配置中心 拉取配置
config:
server-addr: ${spring.cloud.nacos.server-addr}
# namespace: ${spring.cloud.nacos.discovery.namespace}
group: ${spring.profiles.active}
file-extension: yml
# extension-configs[0]:
shared-configs[0]:
data-id: gateway-config-dev.yml
group: dev
refresh: true