-
三、基于 Nacos 构建分布式配置中心
-
- 3.1 回顾 Nacos
-
3.2 分布式配置中心产生背景?
-
3.3 分布式配置中心架构原理
-
3.4 实现 nacos 配置中心的功能
-
3.5 Nacos 实现多环境不同配置
Author: Gorit
Date:2020年12月
Refer:阿里云大学
2021年发表博文: 8/30
===================================================================================
Nacos 是 阿里巴巴的开源框架,提供如下两种功能:
-
注册中心
-
分布式配置中心
分布式配置中心:
-
Zookeeper
-
SpringCloudConfig
-
携程阿波罗
传统项目出现的问题:
在项目中定义配置文件,最大的缺陷,如果在生产环境正在运行时突然需要修改配置文件,必须重启服务器。
分布式配置中心的概念?
使用专门的服务器统一存放管理我们整个微服务的配置文件,能够完全动态的实现对我们配置文件修改,新增,是不需要重启我们的服务器的。
有哪些分布式配置中心?
-
携程阿波罗(属于比较重量级的分布式配置中心)学习成本高
-
Nacos(属于轻量级)部署、架构设计比较简单,学习成本低
-
SpringCloud Config(没有界面)
如何判断配置文件是否法还是能变化
采用版本 | MD5
分布式配置中心实现原理:
-
本地应用读取我们云端分布式配置中心文件(第一次建立长连接)
-
本地应用读取到配置文件之后,本地 jvm 和硬盘都会缓存一份
-
本地应用于分布式配置中心服务端一直保持长连接
-
当我们配置文件发生变化(MD5|版本号)实现区分,将变化结果及时通知我们的本地应用并及时刷新我们的配置文件
完全百分之百动态修改我们的配置文件
在这里插入图片描述
注意:Nacos 分布式配置中心 和 注册中心都部署在同一个应用,就是一个单体应用
Nacos 使用配置中心发布规则
- DataId 名称:默认情况服务名称-版本.yml | properties
注意事项:nacos 本地如果也配置的话,可能启动时会抛出异常
bootstrap 与 application 区别
-
前者属于整个应用程序,最先被加载
-
后者针对当前 springApplication 的 ApplicaitonContext 加载
- 新建一个 Maven 项目,导入依赖
org.springframework.boot
spring-boot-starter-web
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-discovery
2.2.3.RELEASE
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-config
2.2.3.RELEASE
- 创建 application.yml 和 bootstrap.yml
application.yml
spring:
application:
name: gorit-member
cloud:
nacos:
注册中心
discovery:
server-addr: 127.0.0.1:8848
配置中心
config:
server-addr: 127.0.0.1:8848
group: DEFAULT_GROUP
file-extension: properties # 默认是 properties,还可以是 yaml
读者福利
更多笔记分享
48
配置中心
config:
server-addr: 127.0.0.1:8848
group: DEFAULT_GROUP
file-extension: properties # 默认是 properties,还可以是 yaml
读者福利
[外链图片转存中…(img-ewPKffZf-1714466672150)]
更多笔记分享
[外链图片转存中…(img-G4Wlsmyc-1714466672151)]