Nacos配置中⼼(读取配置中⼼配置⽂件)
Nacos配置中⼼
⼀、配置中⼼介绍
1、Spring Cloud Config
Spring Cloud Config 为分布式系统的外部配置提供了服务端和客户端的⽀持⽅案。在配置的服务端您可以在所有环境中为应⽤程序管理外部属性的中⼼位置。客户端和服务端概念上的Spring Environment 和 PropertySource 抽象保持同步, 它们⾮常适合Spring应⽤程序,但是可以与任何语⾔中运⾏的应⽤程序⼀起使⽤。当应⽤程序在部署管道中从⼀个开发到测试直⾄进⼊⽣产时,您可以管理这些环境之间的配置,并确保应⽤程序在迁移时具有它们需要运⾏的所有内容。服务器存储后端的默认实现使⽤git,因此它很容易⽀持标记版本的配置环境,并且能够被管理内容的各种⼯具访问。很容易添加替代的实现,并⽤Spring配置将它们插⼊。
Spring Cloud Config 包含了Client和Server两个部分,server提供配置⽂件的存储、以接⼝的形式将配置⽂件的内容提供出去,client通过接⼝获取数据、并依据此数据初始化⾃⼰的应⽤。Spring cloud使⽤git或svn存放配置⽂件,默认情况下使⽤git。
2、Nacos替换Config
Nacos 可以与 Spring, Spring Boot, Spring Cloud 集成,并能代替 Spring Cloud Eureka, Spring Cloud Config。通过 Nacos Server 和 spring-cloud-starter-alibaba-nacos-config 实现配置的动态变更
(1)应⽤场景
在系统开发过程中,开发者通常会将⼀些需要变更的参数、变量等从代码中分离出来独⽴管理,以独⽴的配置⽂件的形式存在。⽬的是让静态的系统⼯件或者交付物
(如 WAR,JAR 包等)更好地和实际的物理运⾏环境进⾏适配。配置管理⼀般包含在系统部署的过程中,由系统管理员或者运维⼈员完成。配置变更是调整系统运⾏时的⾏为的有效⼿段。
如果微服务架构中没有使⽤统⼀配置中⼼时,所存在的问题:
- 配置⽂件分散在各个项⽬⾥,不⽅便维护
- 配置内容安全与权限
- 更新配置后,项⽬需要重启
梦见考试nacos配置中⼼:系统配置的集中管理(编辑、存储、分发)、动态更新不重启、回滚配置(变更管理、历史版本管理、变更审计)等所有与配置相关的活动。
⼆、读取Nacos配置中⼼的配置⽂件
1、启动Nacos服务
2、进⼊Nacos管理页⾯,默认⽤户名和密码nacos
3、在Nacos配置中⼼创建配置⽂件
(1)点击创建按钮
今年流行的发型图片
(2)输⼊配置信息
上边的配置信息就是之前properties配置⽂件的值,我的如下:
# 服务端⼝
server.port=8008
# 服务名
spring.application.name=service-statistics
# mysql数据库连接
spring.datasource.sql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/zxjy?serverTimezone=GMT%2B8&useSSL=false
spring.datasource.username=root
spring.datasource.password=123
#返回json的全局时间格式
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8
#配置mapper xml⽂件的路径
mybatis-plus.mapper-locations=classpath:com/stu/staservice/mapper/xml/*.xml
#mybatis⽇志
# nacos服务地址
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
上海明星代言公司a)Data ID 的完整规则格式如下
${prefix}-${spring.profiles.active}.${file-extension}
- prefix 默认为所属⼯程配置spring.application.name 的值(即:nacos-provider),也可以通过配置项 spring.fig.prefix来配置。
- spring.profiles.active=dev 即为当前环境对应的 profile。注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension} - file-exetension 为配置
内容的数据格式,可以通过配置项 spring.fig.file-extension 来配置。⽬前只⽀持 properties 和 yaml 类型。
读取配置文件失败4、添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
5、创建bootstrap.properties配置⽂件
#配置中⼼地址
spring.fig.server-addr=127.0.0.1:8848
#spring.profiles.active=dev
# 该配置影响统⼀配置中⼼中的dataId
spring.application.name=service-statistics
把项⽬之前的application.properties内容注释,启动项⽬查看效果
6、补充:springboot配置⽂件加载顺序
其实yml和properties⽂件是⼀样的原理,且⼀个项⽬上要么yml或者properties,⼆选⼀的存在。推荐使⽤yml,更简洁。
bootstrap与application
(1)加载顺序
这⾥主要是说明application和bootstrap的加载顺序。
⽗ApplicationContext 被加载到使⽤ l 的之前。
(2)配置区别
7、修改项⽬bootstrap.properties配置⽂件,添加⼀⾏配置(⽤于配置多个开发环境)1、修改项⽬bootstrap.properties配置⽂件,添加⼀⾏配置
2、当配置⽂件添加上⾯那⾏配置之后,之前创建配置⽂件读取不到了,需要按照新的规则创建配置⽂件
摩托车换挡
3、创建新的配置⽂件内容晚安是什么含义
三、名称空间切换环境
在实际开发中,通常有多套不同的环境(默认只有public),那么这个时候可以根据指定的环境来创建不同的namespce,例如,开发、测试和⽣产三个不同的环境,那么使⽤⼀套 nacos 集可以分别建以下三个不同的 namespace。以此来实现多环境的隔离。
1、创建命名空间
默认只有public,新建了dev、test和prod命名空间
2、在不同名称空间创建配置⽂件
两种⽅式:
第⼀,切换到每个名称空间,添加⼀个新的配置⽂件。缺点:每个环境都要重复配置类似的项⽬第⼆,直接通过clone⽅式添加配置,并修改即可。推荐
我选择克隆到dev,在dev配置列表就看见刚才克隆过来的配置⽂件。