nacos源码理解(1)一nacos配置中心


使用spring-cloud-alibaba-nacos-config配置中心:

maven依赖:

<!--配置中心客户端-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

配置示例:

server:
port: 9999

spring:
application:
name: @artifactId@ # 项目名称
cloud:
nacos:
config:
server-addr: ${NACOS-HOST:localhost}:${NACOS-PORT:8848} # nacos-config地址, 多个地址逗号分开
file-extension: yml # 配置文件后缀
shared-dataids: application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} # 共享配置文件, 带后缀, 多个逗号分隔
refreshable-dataids: application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} # 可刷新的共享配置文件, 多个逗号分隔, 默认都不刷新
group: group-test # 配置分组
namespace: ad741124-a08d-40af-b331-4a2fe0367c46 #租户
ext-config[0]: # 拓展配置
data-id: ext-config-common01.properties # data-id
group: message-ext.properties # 配置组
refresh: true #是否可刷新
encode: UTF-8 # 默认UTF-8
name: @artifactId@
enabled: true

profiles:
active: @profiles.active@ # 环境

 

启动原理, spring.factories配置启动类(自定义springboot starter都会用到该配置, 默认路径 /META-INF/spring.factories):

org.springframework.cloud.bootstrap.BootstrapConfiguration=\

com.alibaba.cloud.nacos.NacosConfigBootstrapConfiguration

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\

com.alibaba.cloud.nacos.NacosConfigAutoConfiguration,\

com.alibaba.cloud.nacos.endpoint.NacosConfigEndpointAutoConfiguration

org.springframework.boot.diagnostics.FailureAnalyzer=\

com.alibaba.cloud.nacos.diagnostics.analyzer.NacosConnectionFailureAnalyzer

 

1. com.alibaba.cloud.nacos.NacosConfigBootstrapConfiguration
该类使用@ConditionalOnProperty(name = "spring.cloud.nacos.config.enabled", matchIfMissing = true)注解控制配置中心的开启和关闭, 主要负责加载配置
并且该类向spring容器注册NacosConfigProperties(nacos配置中心相关的配置)和NacosPropertySourceLocator(nacos的配置探测器, 读取配置属性)
NacosPropertySourceLocator使用NacosPropertySourceBuilder.ConfigService加载配置的优先级, 本地 > http读取nacos配置中心 > 快照
 
共享文件必须是 名称 + 后缀, 不需要特殊处理即可直接读取, 项目自定义的配置文件名称拼接规则: 名称 + 环境 + 后缀
 
加载配置总结:
配置加载顺序: 共享配置 -> 扩展配置 -> 项目配置(包含两个: 1. 项目名+后缀, 2. 项目名+环境+后缀)
配置使用优先级: 本地指定配置 > 配置中心 -> 本地快照
配置文件名优先级: NacosConfigProperties.prefix > NacosConfigProperties.name > spring.application.name
 
2. com.alibaba.cloud.nacos.NacosConfigAutoConfiguration
该类向容器注册 NacosContextRefresher, 该类负责刷新配置
 
3. com.alibaba.cloud.nacos.endpoint.NacosConfigEndpointAutoConfiguration
该类注册 NacosConfigEndpoint (actuator端点)和 NacosConfigHealthIndicator(健康检查)

NACOS     详细 X
网络释义
NACOS: 高洛


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM