Nacos学习笔记(五):配置中心

一、前文回顾

在上一篇文章中我们学习了Nacos中的心跳机制,相对来说内容比较简单。今天我们将一起学习Nacos的另一大功能,作为配置中心。

二、配置中心

1、概念

所谓配置中心顾名思义,就是一个统一存放配置的地方。为什么我们会需要配置中心?在配置中心出现之前,对于不同的环境我们需要编写不同的配置,并且在打包的时候选择好对应的环境;同时也不支持动态刷新所写的配置,所以相对来说不是那么方便。借用官方的话:

在系统开发过程中通常会将一些需要变更的参数、变量等从代码中分离出来独立管理,以独立的配置文件的形式存在。目的是让静态的系统工件或者交付物(如 WAR,JAR 包等)更好地和实际的物理运行环境进行适配。配置管理一般包含在系统部署的过程中,由系统管理员或者运维人员完成这个步骤。配置变更是调整系统运行时的行为的有效手段之一。

image.png

2、如何使用

和注册中心一样,Nacos作为配置中心的数据模型也是由三层组成Namespace、Group、DataId组成。
image.png
1、Springboot中使用Nacos作为配置中心还是比较简单的,首先在bootstrap中添加配置中心相关信息(必须要配置在bootstrap中,因为bootstrap加载顺序优先与application.properties)
image.png
2、在Nacos中添加对应的配置文件
image.png
3、验证参数是否生效
image.png
image.png
可以看配置是生效了,所以说使用还是比较简单的。接下来我们分析一下Nacos中的配置是如何在我们的项目中生效的。

3、源码分析

既然配置是存在Nacos中的,但是最终我们本地可以使用。那么很容易可以想到我们是从Nacos中取配置信息的,通过官网的文档可以知道查询配置的接口是:GET /nacos/v1/cs/configs,我们在源码中找到对应的接口。
image.png
前面部分就是校验参数,没有太多复杂的。核心的逻辑在于 doGetConfig,这里给出一点小小的经验。在许多框架中一般doXXXX方法都是执行具体的业务逻辑的。让我们进入这个方法,这个方法实在太长了,这里只放一些核心的代码:ConfigServletInner.doGetConfig()方法核心代码:
image.png
继续进入findConfigInfo方法,这个方法有两个实现类
image.png
因为我们并没有接入Mysql所以很显然我们进入的是第一个实现类EmbeddedConfigInfoPersistServiceImpl。
代码如下,从Debug的结果我们可以知道Nacos默认使用的数据库是内嵌的derby
image.png
源码分析:这段源码很好理解,就是一个简单的SELECT查询,然后返回一个ConfiginfoWrapper对象,结果如下,其中Content就是我们所编写的内容,而type则是类型(默认是TEXT),当然Nacos还是支持JSON、XML、YML、Properties等等。
image.png
至此我们已经知道了在默认情况下客户端是如何从Nacos中获取到配置文件的了,简单的一句话总结就是一个微服务发送一个GET请求去查询配置,就是这么简单~

三、结束语

今天的内容也相对来说简单,下一篇文章会分析微服务是如何自动从Nacos中获取配置,并且加载到内存中。希望对你有所帮助。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值