Spring Cloud Alibaba - Nacos配置中心


一、Nacos配置中心介绍

Nacos配置中心等同于Srping Cloud Config+Bus,并且配置信息基于自己搭建的项目,并且可以保存到Mysql数据库中


二、Nacos配置中心使用

2.1,Nacos管理首页->配置管理->配置列表

这里就是配置中心管理列表页面,所有的配置数据都在这里展示


image.png


2.2,Nacos数据中心数据模型

在真正使用Nacos数据中心前需要了解Nacos的数据模型:

命名 名称 使用方式
Namespace 不同环境进行隔离 dev开发环境,fat测试环境,pro生产环境
Group 将若干个服务或者配置归集为一组 一个项目一组,比如TC服务,TB服务,管理后台
Service 对应某一个微服务 TC服务拆分的微服务
DataId 一个DataId对应一个配置文件,可以理解数据主键Id 一个微服务对应一个/多个配置文件DataId


2.3,Nacos配置中心使用

  • 命名空间创建dev,fat,pro分别对应开发,测试,生产环境
    image.png
  • 在配置列表中选择对应的命名空间
    image.png
  • 创建配置文件并且分组
    image.png
  • 创建成功后就能在列表看到该条配置数据

2.4,获取配置中心数据开发

在Nacos服务提供者章节的基础上继续开发获取配置中心数据

  • 开发前先了解dataId的完整格式
${prefix}-${spring.profile.active}.${file-extension}
名称 介绍
prefix 默认为spring.application.name 的值,也可以通过配置项spring.cloud.nacos.config.prefix来配置
spring.profile.active 当前环境对应的profile,当该字段为空时,dataId会变成${prefix}.${file-extension},因为环境一般配置在Namespace,所以这个建议空
file-exetension 后缀,可以通过配置项spring.cloud.nacos.config.file-extension 来配置
  • sca-parent项目pom.xml

        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-config
        
  • sca-service-8081项目applicaion.yml改成bootstrap.yml
    如果直接使用application.yml配置,会无法从配置中心获取配置参数
    bootstrap.yml是由父Spring ApplicationContext加载,他会在application.yml加载前加载
    bootstrap.yml一般是最早期配置文件,里面的参数一般是不会变动的
    而变动的参数会通过application.yml进行米哦啊书
    而nacos需要使用bootstrap.yml进行nacos相关的配置
server:
  port: 8081  # 端口
spring:
  application:
    name: sca-service # 命名
  # nacos配置
  cloud:
    nacos:
      discovery:
        # 集群中各节点信息都配置在这里(域名-VIP-绑定映射到各个实例的地址信息)
        server-addr: 127.0.0.1:8848
      # nacos配置中心获取配置设置
      config:
        # nacos配置中心IP端口,集群以,隔开
        server-addr: 127.0.0.1:8848
        # 命名空间里面的命名空间ID
        namespace: 0520da30-154c-42e2-94d1-524e42203aa4
        # group分组名称
        group: DEFAULT_GROUP
        # 后缀名,最终配置文件全称sca-service.yaml
        file-extension: yaml
        # 配置文件命名规则
        prefix: sca-service
  • HelloController.java编写一个类进行验证
@RestController
@RequestMapping("/sca")
@RefreshScope //动态刷新配置信息
public class HelloController {
    @Value("${server.port8081}")
    private Integer port;
    @GetMapping("/hello/{name}")
    public String hello(@PathVariable String name){
        return name + "你好,欢迎来到"+port+"的Spring Cloud Alibaba";
    }
}

你可能感兴趣的:(Spring Cloud Alibaba - Nacos配置中心)