这篇文章主要介绍了Springcloud中的NacosConfig服务配置,本文以用户微服务为例,进行统一的配置,结合实例代码给大家介绍的非常详细,需要的朋友可以参考下
1、引入依赖
<dependencies>
<!--nacos-config-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!--nacos-discovery-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--web + actuator-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
YML的类别
Nacos
同springcloud-config
一样,在项目初始化时,要保证先从配置中心进行配置拉取,拉取配置之后,才能保证项目的正常启动。springboot
中配置文件的加载是存在优先级顺序的,bootstrap
优先级高于application
注意点 在Cloud高版本中(例如:2021.0.3),你可能还需要引入以下依赖
<!-- bootstrap 启动器:解决Cloud高版本下不先加载bootstrap.properties问题
see github issue:https://github.com/alibaba/spring-cloud-alibaba/issues/1994
-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
2、配置Bootstrap.yml
# nacos配置
server:
port: 3377spring:
application:
name: nacos-config-client
cloud:
nacos:
discovery:
server-addr: localhost:8848 #Nacos服务注册中心地址
config:
server-addr: localhost:8848 #Nacos作为配置中心地址
file-extension: yaml #指定yaml格式的配置
group: TEST_GROUP
namespace: ea7be215-37d0-4175-958c-a8af3545f115
# ${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension}
共享配置 & 多配置文件
spring:
application:
name: nacos-config-multi
main:
allow-bean-definition-overriding: true
cloud:
nacos:
username: ${nacos.username}
password: ${nacos.password}
config:
server-addr: ${nacos.server-addr}
namespace: ${nacos.namespace}
# 用于共享的配置文件
shared-configs:
- data-id: common-mysql.yaml
group: SPRING_CLOUD_EXAMPLE_GROUP- data-id: common-redis.yaml
group: SPRING_CLOUD_EXAMPLE_GROUP- data-id: common-base.yaml
group: SPRING_CLOUD_EXAMPLE_GROUP# 常规配置文件
# 优先级大于 shared-configs,在 shared-configs 之后加载
extension-configs:
- data-id: nacos-config-advanced.yaml
group: SPRING_CLOUD_EXAMPLE_GROUP
refresh: true- data-id: nacos-config-base.yaml
group: SPRING_CLOUD_EXAMPLE_GROUP
refresh: true
3、配置application.yml
spring:
profiles:
active: dev # 表示开发环境
4、Controller测试接口
/**
* 配置客户端控制器
*
* @author LiJunYi
* @RefreshScope 支持Nacos的动态刷新功能
*/
@RestController
@RefreshScope
public class ConfigClientController
{
@Value("${config.info}")
private String configInfo;
@GetMapping("/config/info")
public String getConfigInfo() {
return configInfo;
}
}
在Nacos中添加配置信息
匹配规则-理论
之所以需要配置 spring.application.name
,是因为它是构成 Nacos
配置管理 dataId
字段的一部分。
dataId的完整格式
${prefix}-${spring.profile.active}.${file-extension}
1、prefix
默认为 spring.application.name
的值,也可以通过配置项spring.cloud.nacos.config.prefix
来配置。
2、spring.profile.active
即为当前环境对应的 profile
。注意:当spring.profile.active
为空时,对应的连接符 –
也将不存在datald
的拼接格式变成${prefix}.${file-extension}
3、file-exetension
为配置内容的数据格式, 可以通过配置项spring.cloud .nacos.config.file-extension
来配置。 目前只支持properties
和yaml
类型。
最后公式:
配置新增
![(undefined?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
图解
Namespace+Group+DatalD讲解
三者关系
类似Java里面的 package
名和类名, 最外层的 namespace
是可以用于区分部署环境的,Group
和 DataID
逻辑上区分两个目标对象。
三者情况
默认情况:
Namespace
= public
,Group
= DEFAULT_GROUP
,默认Cluster
是 DEFAULT
Nacos
默认的命名空间是 public
,Namespace
主要用来实现隔离。
比方说我们现在有三个环境:开发、测试、生产环境,我们就可以创建三个Namespace
,不同的Namespace
之间是隔离的。
Group
默认是 DEFAULT_GROUP
,Group
可以把不同的微服务划分到同一个分组里面去
Sevice
就是微服务;一个Service
可以包含多个Cluster(集群)
,Nacos
默认Cluster
是DEFAULT
, Cluster
是对指定微服务的一个虚拟划分。
比方说为了容灾,将Service微服务分别部署在了杭州机房和广州机房,这时就可以给杭州机房的 Service微服务起一个集群名称(Hz),给广州机房的Service微服务起一个集群名称(GZ), 还可以尽量让同一个机房的微服务互相调用,以提升性能。
最后是Instance
,就是微服务的实例。
实例-三种方案加载配置
1、dataId方案
指定spring.profile.active
和配置文件的DatalD
来使不同环境下读取不同的配置
默认空间+默认分组+新建dev
和test
两个Datald
通过spring.profile.active
属性就能进行多环境下配置文件的读取
新建两个不同的配置
YML
2、Group方案
Nacos配置详情
YML
3、Namespace方案
Nacos新增命名空间
bootstrao.yml
# nacos配置
server:
port: 3377spring:
application:
name: nacos-config-client
cloud:
nacos:
discovery:
server-addr: localhost:8848 #Nacos服务注册中心地址
config:
server-addr: localhost:8848 #Nacos作为配置中心地址
file-extension: yaml #指定yaml格式的配置
group: TEST_GROUP
namespace: ea7be215-37d0-4175-958c-a8af3545f115
Nacos作为配置中心的内容主要就是这些,更多详细知识点可以查阅官方文档哦。
到此这篇关于SpringCloud将Nacos作为配置中心实现流程详解的文章就介绍到这了,更多相关SpringCloud Nacos内容请搜索编程学习网以前的文章希望大家以后多多支持编程学习网!
本文标题为:SpringCloud将Nacos作为配置中心实现流程详解
基础教程推荐
- Java数据结构之对象比较详解 2023-03-07
- ConditionalOnProperty配置swagger不生效问题及解决 2023-01-02
- Java实现查找文件和替换文件内容 2023-04-06
- JDK数组阻塞队列源码深入分析总结 2023-04-18
- Java实现线程插队的示例代码 2022-09-03
- springboot自定义starter方法及注解实例 2023-03-31
- java实现多人聊天系统 2023-05-19
- java基础知识之FileInputStream流的使用 2023-08-11
- Java并发编程进阶之线程控制篇 2023-03-07
- Java文件管理操作的知识点整理 2023-05-19