欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Nacos作为配置中心

程序员文章站 2022-07-15 08:59:19
...

前言

通过本教程的前一篇:

Nacos服务注册和发现

我们已经知道如何利用Nacos实现服务的注册与发现。接下来,我们再来掌握Nacos的另外一个重要能力:配置管理。

简介

Nacos除了实现了服务的注册发现之外,还将配置中心功能整合在了一起。通过Nacos的配置管理功能,我们可以将整个架构体系内的所有配置都集中在Nacos中存储。这样做的好处,在以往的教程中介绍Spring Cloud Config时也有提到,主要有以下几点:

  • 分离的多环境配置,可以更灵活的管理权限,安全性更高
  • 应用程序的打包更为纯粹,以实现一次打包,多处运行的特点

Nacos的配置管理模型与淘宝开源的配置中心Diamond类似,基础层面都通过DataIdGroup来定位配置内容,除此之外还增加了很多其他的管理功能。类似于consul config,Nacos 是支持热加载的

快速入门

创建配置

  1. 新建命名空间

    Nacos作为配置中心

  2. 在配置列表功能页面中,点击右上角的“+”按钮,进入“新建配置”页面

    Nacos作为配置中心

    Nacos作为配置中心

其中:

  • Data ID:填入nacos-provider.yml
  • Group:不修改,使用默认值DEFAULT_GROUP
  • 配置格式:选择YAML
  • 配置内容:应用要加载的配置内容,这里仅作为示例,做简单配置

创建应用

  1. pom文件引入nacos-config的Spring cloud依赖
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-alibaba-nacos-config</artifactId>
			<version>0.9.0.RELEASE</version>
		</dependency>
  1. 在bootstrap.yml(一定是bootstrap.yml文件,不是application.yml文件)文件配置以下内容:
spring:
  application:
    name: nacos-provider
  cloud:
    nacos:
      discovery:
        # 服务注册地址
        server-addr: 127.0.0.1:8848
        namespace: 31398485-c414-45d1-9f0c-426011114fa5
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yml
        prefix: nacos-provider
        namespace: 31398485-c414-45d1-9f0c-426011114fa5
#  profiles:
#    active: dev

在上面的配置中,配置了nacos config server的地址,配置的扩展名是ymal(目前仅支持ymal和properties)。注意是没有配置server.port的,sever.port的属性在nacos中配置。上面的配置是和Nacos中的dataId 的格式是对应的,nacos的完整格式如下:

${prefix}-${spring.profile.active}.${file-extension}
  • prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
  • spring.profile.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档注意:当 spring.profile.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}
  • file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 propertiesyaml 类型。
  • namespace为刚才创建命名空间里的命名空间ID
  1. 验证配置获取和验证动态刷新

    Nacos作为配置中心

在Controller上添加 @RefreshScope 实现配置的热加载

启动工程,可以看到修改nacos配置test的配置,客户端也会动态刷新。

相关标签: SpringCloud Nacos