问题描述

网关配置进行动态路由分配给对应服务器。

原因分析

查了资料说是版本问题,但使用的也是官方给的最新版本,后来降低版本也没有把问题解决。但直接使用 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 组成。Config3 个属性,分别是 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

更多推荐

No servers available for service