Nacos学习(一) —— Nacos配置管理实战

Nacos简介

Nacos是阿里巴巴集团开发的一款开源平台,用于配置/服务发现/服务管理,Nacos可以帮助我们很容易的构建云本机应用程序和微服务架构。Nacos基本上支持现在所有类型的服务,比如说GRPC/Dubbo服务/SpringCloud Restful服务/Kubernetes服务。

作为微服务开发人员都应该知道的,Eureka作为服务注册中心,总考虑到Eureka的闭源问题,Nacos的出现,程序员们就可以把服务注册中心改为Nacos了。

Nacos配置中心-QuickStart

首先增加依赖。

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

bootstrap.yml中增加配置。注意一定要在bootstrap.yml中配置。

spring:
  cloud:
    nacos:
      config:
        server-addr: localhost:8848 #配置中心地址
        file-extension: yaml #配置文件后缀默认是properties
  application:
    name: nacos-demo
  profiles:
    active: dev

增加配置类NacosConfig@RefreshScope注解用来动态更新Nacos中最新的配置。

@Data
@Component
@RefreshScope
public class NacosConfig {
    @Value("${your.configuration}")
    private String configuration;
}

测试类。

@RestController
public class TestController {
    @Autowired
    private NacosConfig nacosConfig;

    @GetMapping("/hello")
    public String hello() {
        System.out.println("hello world");
        return nacosConfig.getConfiguration();
    }
}

我们再看下Nacos中的配置。
在这里插入图片描述
我们可以看到Data Id需要与配置中的属性保持一直,即spring.application.name-spring.profiles.active.file-extension

相同应用不同环境配置共享

只需要提取一个以 spring.application.name 命名的配置文件,然后将其所有环境的公共配置放在里 面即可。例如:
在这里插入图片描述
可以被spring.application.name=nacos-demo的所有服务共享。

不同微服务中间共享配置

有的时候我们需要将多个服务相同的配置信息设置成公用配置。例如:
在这里插入图片描述
Nacos提供两种方式配置共享:

  • shared-dataids

    spring:
      cloud:
        nacos:
          config:
            server-addr: localhost:8848 #配置中心地址
            file-extension: yaml #配置文件后缀默认是properties
            # 共享配置的DataId,多个使用,分隔
            # 越靠后,优先级越高
            shared-dataids: common1.yaml
            refreshable-dataids: common1.yaml
      application:
        name: nacos-demo
      profiles:
        active: dev
    
  • ext-config

    spring:
      cloud:
        nacos:
          config:
            server-addr: localhost:8848 #配置中心地址
            file-extension: yaml #配置文件后缀默认是properties
            # 共享配置的DataId,多个使用,分隔
            # 越靠后,优先级越高
            #shared-dataids: common1.yaml
            #refreshable-dataids: common1.yaml
            ext-config:
              - data-id: common1.yaml
                group: DEFAULT_GROUP
                refresh: true
      application:
        name: nacos-demo
      profiles:
        active: dev
    

实例化数据库

Nacos Server 默认使用的是内嵌的数据库,生产环境建议修改使用 mysql 数据库存储配置信息。

在配置文件application.properties添加配置:

### If user MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://www.xm-fighting.com:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=xm
db.password=hw4372156

创建数据库,在Nacos Server conf文件夹下,找到nacos-mysql.sql文件,导入创建的数据库即可。


版权声明:本文为hxyascx原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。