No servers available for service

本文主要介绍了在使用Nacos作为服务治理平台时遇到的动态路由问题。问题表现为通过网关无法找到服务器,经过排查发现是由于不同服务模块使用了不同的命名空间导致。解决方案是将所有服务注册中心统一到同一个命名空间下,修改配置文件后,问题得到解决。
摘要由CSDN通过智能技术生成

问题描述

网关配置进行动态路由分配给对应服务器。
在这里插入图片描述

在这里插入图片描述

原因分析

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

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值