• spring-cloud-alibaba - nacos配置中心&注册中心 实战


    spring cloud alibaba - nacos配置中心&注册中心 实战

    文章旨在 简单易懂,学习交流;文章中会尽量避免其他 关联内容;
    其他关联的 微服务内容会单独 启动专题说明;也可留言,会第一时间解答,相互交流
    非喜勿喷;

    环境

    版本
    spring cloud alibaba2.2.7.RELEASE
    Nacos2.0.3
    jdk11
    maven3.6.3

    Maven 依赖

    <dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>com.alibaba.cloudgroupId>
          <artifactId>spring-cloud-alibaba-dependenciesartifactId>
          <version>2.2.7.RELEASEversion>
          <type>pomtype>
          <scope>importscope>
        dependency>
      dependencies>
    dependencyManagement>
    <dependencies>
      
      <dependency>
        <groupId>com.alibaba.cloudgroupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
      dependency>
    
      
      <dependency>
        <groupId>com.alibaba.cloudgroupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-configartifactId>
      dependency>
    
      <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-webartifactId>
      dependency>
    
      <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starterartifactId>
      dependency>
    
      <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-testartifactId>
        <scope>testscope>
      dependency>
    
      <dependency>
        <groupId>org.projectlombokgroupId>
        <artifactId>lombokartifactId>
        <optional>trueoptional>
      dependency>
    dependencies>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46

    项目配置

    spring:
      application:
        name: nacos-config
      profiles:
        active: dev
    
      cloud:
        # nacos 配置
        nacos:
          # 注册中心配置
          discovery:
            server-addr: localhost:8840,localhost:8842,localhost:8844 # Nacos 集群
            namespace: bb84f64f-eaf7-4cf3-97b4-3d939ae1dce9 # 命名空间
          # 配置中心
          config:
            server-addr: localhost:8840,localhost:8842,localhost:8844
            namespace: bb84f64f-eaf7-4cf3-97b4-3d939ae1dce9
            file-extension: yaml # 文件格式
            
            #        Nacos配置中心 的核心概念:
            #        2.1、Data ID:
            #        (1)Data ID 的命名格式:
            #        前面我们演示了在 nacos 控制台新建一个 DataID 为 cloud-producer-server-dev.yaml 的数据集,那么这个 Data ID 是什么呢?Data ID 是配置集的唯一标识,一个应用可以包含多个配置集,每个配置集都需要被一个有意义的名称标识。那么 Data ID 怎么取值呢?格式通俗一点就是 “前缀-环境-扩展名”,如下所示:
            #        ${spring.cloud.nacos.config.prefix}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
            #        ① prefix:前缀,默认是 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix 来配置。
            #        # 若不指定,默认采用应用名的方案
            #        spring.application.name=cloud-producer-server
            #        # 手动指定配置的dataID前缀标识
            #        # spring.cloud.nacos.config.prefix=cloud-producer-server-config
            #        ② active:配置运行环境,即为当前环境对应的 profile。
            #        注意:当 spring.profiles.active 为空时,对应的连接符 ”-“ 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}
            #        # dev表示开发环境
            #        spring.profiles.active=dev
            #        ③ file-exetension:配置文件的类型,默认是 properties,也可以通过配置项 spring.cloud.nacos.config.file-extension 来配置,目前支持的类型有 TEXT、JSON、XML、YAML、HTML、Properties
            #        # 指定配置文件类型为yaml文件
            #        spring.cloud.nacos.config.file-extension=yaml
            #        ④ 最终配置:
            #        经过前面三个步骤,我们最终在nacos配置中心的控制台新增配置文件就是:cloud-producer-server.yaml
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39

    image-20221113143744545

    nacos控制台 配置文件创建

    image-20221113144431488

    • 具体配置内容

    image-20221113144606320

    具体配置规则 结合 项目yaml 文件

    #        Nacos配置中心 的核心概念:
    #        2.1、Data ID:
    #        (1)Data ID 的命名格式:
    #        前面我们演示了在 nacos 控制台新建一个 DataID 为 cloud-producer-server-dev.yaml 的数据集,那么这个 Data ID 是什么呢?Data ID 是配置集的唯一标识,一个应用可以包含多个配置集,每个配置集都需要被一个有意义的名称标识。那么 Data ID 怎么取值呢?格式通俗一点就是 “前缀-环境-扩展名”,如下所示:
    #        ${spring.cloud.nacos.config.prefix}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
    #        ① prefix:前缀,默认是 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix 来配置。
    #        # 若不指定,默认采用应用名的方案
    #        spring.application.name=cloud-producer-server
    #        # 手动指定配置的dataID前缀标识
    #        # spring.cloud.nacos.config.prefix=cloud-producer-server-config
    #        ② active:配置运行环境,即为当前环境对应的 profile。
    #        注意:当 spring.profiles.active 为空时,对应的连接符 ”-“ 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}
    #        # dev表示开发环境
    #        spring.profiles.active=dev
    #        ③ file-exetension:配置文件的类型,默认是 properties,也可以通过配置项 spring.cloud.nacos.config.file-extension 来配置,目前支持的类型有 TEXT、JSON、XML、YAML、HTML、Properties
    #        # 指定配置文件类型为yaml文件
    #        spring.cloud.nacos.config.file-extension=yaml
    #        ④ 最终配置:
    #        经过前面三个步骤,我们最终在nacos配置中心的控制台新增配置文件就是:cloud-producer-server.yaml
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    测试

    • 配置类
    @Data
    @Component
    @ConfigurationProperties(prefix = "nacos.config.demo")
    public class DemoConfig {
    
        private String name;
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 测试接口
    @RestController
    @RequestMapping("/config")
    public class ConfigController {
    
        @Resource
        private DemoConfig demoConfig;
    
        @GetMapping("/demo")
        public String getConfig(){
            return demoConfig.getName();
        }
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 执行接口

    curl -X GET --location "http://localhost:50020/config/demo"

    GET http://localhost:50020/config/demo
    
    HTTP/1.1 200 
    Content-Type: text/plain;charset=UTF-8
    Content-Length: 7
    Date: Sun, 13 Nov 2022 06:41:21 GMT
    Keep-Alive: timeout=60
    Connection: keep-alive
    
    xiaobai
    
    Response code: 200; Time: 19ms (19 ms); Content length: 7 bytes (7 B)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    注册中心展示

    image-20221113145047827

  • 相关阅读:
    ZZULIOJ 1105: 判断友好数对(函数专题) (C/C++)
    【毕业设计】新闻分类系统 - 深度学习 机器学习
    深入理解Scrapy
    从0到1搭建推荐系统
    Autosar基础——车载信息安全SecOC
    算法学习笔记
    企业电子招标采购系统源码Spring Boot + Mybatis + Redis + Layui + 前后端分离 构建企业电子招采平台之立项流程图
    数据结构和算法——用C语言实现所有排序算法
    kubernetes工作负载之控制器
    使用SpringBoot定时设置Ubuntu编码为UTF8
  • 原文地址:https://blog.csdn.net/qq_41692766/article/details/127832133