springboot整合nacos,服务发现配置中心(二)

前提:nacos已部署成功,持久化成功
部署nacos链接:https://www.jianshu.com/p/0ee9c76bd46b

  1. 创建springboot项目,添加nacos依赖(与springboot的版本一定要注意)

        
            
            
                com.alibaba.cloud
                spring-cloud-alibaba-dependencies
                ${spring-cloud-alibaba-version}
                pom
                import
            
        
    


        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
            ${spring-cloud-alibaba-version}
        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-config
            ${spring-cloud-alibaba-version}
        


  1. 配置命名空间(可选)
  • 进入http://x.x.x.x:8848/nacos 配置命名空间(可选)
    image.png

    public是默认的命名空间,没有命名空间ID
  1. 导入配置
    image.png

    body最上面一行 public|dev|uat|prod就是配置的命名空间,可点击筛选
    Data Id 规则:项目名-环境.文件后缀${spring.application.name}-${spring.profiles.active}.${file-extension}
    Group规则:项目名-环境
    ${spring.application.name}-${spring.profiles.active}
  2. bootstrap.yml 配置文件
    resource文件夹下保留一个bootstrap.yml 文件即可
spring:
  profiles:
    active: dev
  application:
    name: platform
  cloud:
    nacos:
      discovery:
        server-addr: x.x.x.x:8848
        namespace: 3982ea3b-4cc7-459d-86c5-40bc3e88b9e4
      config:
        server-addr: ${spring.cloud.nacos.discovery.server-addr}
        group: ${spring.application.name}-${spring.profiles.active}
        file-extension: yaml
        namespace: ${spring.cloud.nacos.discovery.namespace}

server-addr:nacos地址
namespace:命名空间id (踩坑:我直接配置命名空间,死活就是取不到配置文件,改成id就可以)
group:${spring.application.name}-${spring.profiles.active}
file-extension:看到有文档说yml yaml都可以,跟nacos命名空间后缀一样即可;但是我用yml不行,最后用的yaml,不知道为什么

  1. 一个环境多个配置文件
spring:
  profiles:
    active: dev
  application:
    name: platform
  cloud:
    nacos:
      discovery:
        server-addr: x.x.x.x:8848
        namespace: 3982ea3b-4cc7-459d-86c5-40bc3e88b9e4
      config:
        server-addr: ${spring.cloud.nacos.discovery.server-addr}
        namespace: ${spring.cloud.nacos.discovery.namespace}
        # 用于共享的配置文件
        shared-configs:
          - data-id: common-dev.yaml
            group: platform-dev
        # 常规配置文件
        # 优先级大于 shared-configs,在 shared-configs 之后加载
        extension-configs:
          - data-id: platform-dev.yaml
            group: platform-dev
            refresh: true

参数解析:

  • data-id : Data Id
  • group:自定义 Data Id 所在的组,不明确配置的话,默认是 DEFAULT_GROUP。
  • refresh: 控制该 Data Id 在配置变更时,是否支持应用中可动态刷新, 感知到最新的配置值。默认是不支持的。

遇到的问题:

  • 启动不了(版本冲突)
  • 服务列表不能发现服务或者发现的服务不在对应的命名空间(检查上面这几个配置)
  • 连不上配置文件(检查上面这几个配置)

你可能感兴趣的:(springboot整合nacos,服务发现配置中心(二))