Nacos学习笔记(1) - 配置中心

以单机模式启动Nacos

sh startup.sh -m standalone

配置中心的作用

配置中心提供了外部的服务端的配置支持,能在配置中心进行配置的管理,微服务在启动时从配置中心读取配置与本地的配置进行合并。在微服务运行时也能通过配置中心动态修改配置。Nacos配置管理菜单如图所示:


Nacos配置管理菜单

新建一个配置

新建配置

Data ID: 为配置文件中的{spring.application.name}.{file-extension}属性
Group:默认为DEFAULT_GROUP,可以通过spring.cloud.nacos.config.group属性修改

编写一个测试程序

  1. 添加pom文件依赖
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
  1. 编写bootstrap.yml
    bootstrap.ymlapplication.yml的不同之处在于bootstrap.yml是在程序引导时执行的,更早于application.yml优先执行,可以用来配置后续配置中获取到的参数
server:
  port: 7010

spring:
  application:
    name: 03-nacos-discovery-config
  cloud:
    nacos:
      username: nacos
      password: nacos
      discovery:
        server-addr: 42.193.112.110:8848
      # 配置中心配置
      config:
        # 配置中心地址
        server-addr: 42.193.112.110:8848
        # 配置中心中文件的后缀
        file-extension: yaml
        # 配置中心的 Group 属性
        group: XCZ_GROUP
  1. 如果需要修改配置后动态刷新配置的值,可以在用到该配置的类上或者属性上添加@RefreshScope注解,这样在修改Nacos配置中心保存的配置后,用到该配置的属性会被动态刷新,示例代码如下:
@RefreshScope
@RestController
@EnableDiscoveryClient
@SpringBootApplication
public class NacosConfig03Application {

    @Value("${user.name}")
    private String name;

    @Value("${user.age}")
    private Integer age;

    @GetMapping("/nacos/config")
    public String nacosConfigTest() {
        return "user.name: " + name + "; user.age: " + age;
    }

    public static void main(String[] args) {
        SpringApplication.run(NacosConfig03Application.class, args);
    }
}

多环境配置

nacos在加载配置可以加载Data Id为${spring.application.name}-${profile}.${file-extension}的配置,可以通过${profile.active}选择要从Nacos中加载的配置文件。示例代码入下:

  1. 在bootstrap.yml中指定环境
spring:
  application:
    name: 03-nacos-discovery-config
  cloud:
    nacos:
      username: nacos
      password: nacos
      discovery:
        server-addr: 42.193.102.100:8848
      # 配置中心配置
      config:
        # 配置中心地址
        server-addr: 42.193.102.100:8848
        # 配置中心中文件的后缀
        file-extension: yml
        # 配置中心的 Group 属性
        group: XCZ_GROUP

  profiles:
    active: dev
  1. 新建一个配置,配置名后面跟上多环境后缀


    新建03-nacos-discovery-config-dev.yml

共享配置

我们有时候多个应用可能都需要一些共同的配置,比如redis连接信息,mybatis-plus的配置等等,我们可以把这些配置抽离出来成为一个公共的配置,再需要使用该配置的应用中添加:

# 共享的配置
spring.cloud.nacos.config.shared-configs[0]=application-dev.properties

这样,程序会在启动的时候会读取application-dev.properties的配置。

经过测试发现,共享的配置不能自动刷新,非共享的配置可以自动刷新

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容