美文网首页IT必备技能Java开发应用
springboot整合nacos,服务发现配置中心(二)

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

作者: 指下光年 | 来源:发表于2022-01-21 16:08 被阅读0次

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

    1. 创建springboot项目,添加nacos依赖(与springboot的版本一定要注意)
    <dependencyManagement>
            <dependencies>
                <!--阿里巴巴下载仓库-->
                <dependency>
                    <groupId>com.alibaba.cloud</groupId>
                    <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                    <version>${spring-cloud-alibaba-version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
    <dependencies>
    <!--nacos-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
                <version>${spring-cloud-alibaba-version}</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
                <version>${spring-cloud-alibaba-version}</version>
            </dependency>
    </dependencies>
    
    
    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,服务发现配置中心(二)

        本文链接:https://www.haomeiwen.com/subject/kgiehrtx.html