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

本文介绍了Nacos作为配置中心的实战应用,包括Nacos的配置中心QuickStart,如何实现相同应用不同环境的配置共享,不同微服务间的配置共享,以及如何实例化数据库以适配生产环境。Nacos作为阿里巴巴的开源平台,为微服务架构提供了配置、服务发现和管理的能力,是Eureka的一个替代选择。
摘要由CSDN通过智能技术生成
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文件,导入创建的数据库即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值