【Nacos】配置中心

Nacos除了注册中心和负载均衡之外,还是一个配置中心,具备配置管理的功能。

Nacos 配置中心是一种用于集中式管理应用程序配置的服务,它可以将应用程序的配置从代码和本地配置文件中分离出来,实现配置的集中管理和动态更新。通过 Nacos 配置中心,开发者可以:

  1. 集中化配置管理:将不同应用和环境的配置集中在一个地方进行管理。
  2. 动态配置更新:支持配置的实时刷新,无需重启应用。
  3. 版本管理和灰度发布:支持配置的版本管理和灰度发布,可以在配置更新时对不同的环境和实例逐步生效。
  4. 多环境支持:支持多环境的配置管理,如开发、测试和生产环境等。

服务启动时,从配置中心读取配置项的内容,进行初始化。

配置项修改时,通知微服务,实现配置的更新加载. 

1. 快速上手

1.1 添加配置(添加完,服务才可以读取)

在配置列表中可以添加上配置,注意这里的配置也有命名空间,但这里的命名空间和环境隔离(服务管理)的命名空间并不是一致的。

点击创建配置

Data ID和服务名称保持一致,点击发布,观察现在一个配置项已经发布成功。

配置内容:nacos.config = public

这个配置的命名空间是public,继续在dev命名空间下创建一个配置文件。

配置内容:nacos.config = dev

现在针对public和dev空间都有一个配置。

1.2 引入相关依赖

需要引入nacos-config依赖和starter-bootstrap依赖

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
        <!-- SpringCloud 2020.*之后版本需要引⼊bootstrap-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>

1.3 修改配置文件(从哪里读取配置,配置ip等信息)

注意这里修改配置文件并不是和之前配置相关信息一样。

微服务启动前,需要先获取nacos中配置,并与application.yml配置合并,在微服务运行之前,Nacos要求必须使用 bootstrap.properties 配置文件来配置Nacos Server 地址.

新建一个bootstrap配置文件,然后配置服务名称和nacos地址

注意:

  • spring.application.name 需要和nacos配置管理的Data ID⼀致
  • spring.cloud.nacos.config.server-addr 为Nacos Server的地址

1.4 编写程序,测试

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RequestMapping("/config")
@RefreshScope
@RestController
public class NacosConfigController {

    @Value("${nacos.config}")
    private String nacosConfig;


    @RequestMapping("getConfig")
    public String getConfig(){
        return "从Nacos成功获取到配置信息:" + nacosConfig;
    }
}

访问 http://localhost:9090/config/getConfig

可见获取到的是public命名空间下的环境。

如果希望可以实现配置的热更新,加上@RefreshScope注解

2. 配置中心详解

2.1 设置配置中心命名空间

通过上面的测试发现我们现在拿到的是public下的配置,如果希望拿到其他命名空间下的配置信息该怎么办呢?

这里的命名空间和服务的命名空间是分别设置的。

这时候Nacos命名空间配置就然在bootstrap配置文件中进行配置。

设置了命名空间,项目启动后,就会从该命名空间下找对应的配置项

保存配置后,重启服务。访问接口,观察结果:

修改配置文件,dev--> dev2,访问到的数据随之改变

2.2 Data Id详解

Data-Id的完整格式:${prefix}-${spring.profiles.active}.${file-extension}

  1. prefix 默认为 spring.application.name 的值,也可以通过配置spring.cloud.nacos.config.prefix来配置
  2. spring.profiles.active 即为当前环境对应的 profile.当 spring.profiles.activ为空时,对应的连接符-也将不存在,datald的拼接格式变成 ${prefix}.${file-extension}
  3. file-exetension 为配置内容的数据格式,可以通过配置项spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties和 yaml 类型.默认为properties.

微服务启动时, 会从Nacos读取多个配置⽂件:
三个⽂件的优先级为: product-service-dev.properties > product-service.properties > product
service
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小小小关同学

你的支持就是我的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值