新建Model-cloudalibaba-config-nacos-client3377
POM文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>SpringCloud</artifactId>
<groupId>com.lck.springcloud</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>cloudalibaba-config-nacos-client3377</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<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>
<!--一般基础配置-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>
bootstarp
普通YML
为什么要配置两个
Nacos添加匹配规则:
Nacos中的dataid的组成格式及SpringBoot中配置文件中的匹配规则
启动3377 ,在nacos界面显示如下
浏览器输入http://localhost:3377/config/info
version版本会随着nacos里面编辑的变化而变化。
Nacos之命名空间 分组和DataID三者关系
问题一
在实际开发中,通常一个系统会准备
dev开发环境
Test测试环境
prod生产环境
如何保证指定环境启动时服务能正确读取到Nacos上相应环境的配置文件呢
问题二
一个大型分布式微服务系统会有很多微服务子项目
每个微服务项目都会有相应的开发环境、测试环境、预发环境、正式环境…
怎么对这些微服务配置进行管理
Namespace+Group+DataID这样设计
是什么
类似java里面的package名和类名
最外层的namespce是可以用于区分部署环境的,Group和DataID逻辑上区分两个目标对象
三者情况
默认情况:
Nmaespace =public,Gourp =DEFAULT_GROUP,默认Cluster是DEFAULT
Nacos默认的命名空间是public,Namespace主要用来实现隔离。
比如说我们有三个环境:开发、测试、生产环境,我们就可以创建三个Namespace,不同的Namespace之间是隔离的。
Group默认是DEFAULT——GROUP,Group可以把不同的微服务划分到同一个分组里面去。
DataID方案
- 指定spring.profile.action和配置文件的DataID来使不同的环境下读取不同的配置
- 默认空间+默认分组+新建dev和test两个DataID
- 通过spring.profile.action属性就能进行多环境下配置文件的读取
- 测试
在nacos页面新增一个配置
![[Pasted image 20220301200301.png]]
在同一个public下里面有两个配置
更换环境
页面成功切换环境
Group方案
- 通过Group来实现环境区分
- 在nacos界面控制台上面新建配置文件DataID
- bootstrap+application更改
Bootstrap.yml
![[Pasted image 20220301201559.png]]
application.yml
启动3377,刷新页面
Namespace方案
- 新建dev/test的Namespace
- 回到服务器管理-服务列表查看
- 按照域名配置填写
- YML
![[Pasted image 20220301202726.png]]
在dev命名空间下新建三个
测试spring.profile.active 都是dev 只有GROUPID不一样
在同一个namespace下只更改groupid即可修改环境
Nacos集群和持久化配置(重要)
![[Pasted image 20220301204545.png]]
vip 虚拟ip 换句话说就是Nginx
集群你觉得你进公司你能搭建集群吗 告辞