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创建统⼀配置⽂件
(1)点击创建按钮
(2)输⼊配置信息
a)Data ID 的完整规则格式如下$ {prefix}-$ {spring.profile.active}.${file-extension}
prefix 默认为所属⼯程配置spring.application.name 的值(即:nacos-provider),也可以通过配置项spring.fig.prefix来配置。
spring.profiles.active=dev 即为当前环境对应的 profile。 注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 {file-extension}
file-exetension 为配置内容的数据格式,可以通过配置项 spring.fig.file-extension 来配置。⽬前只⽀持
properties 和 yaml 类型。
2、以service-statistics 模块为例
(1)在service中引⼊依赖
prefix .
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
(2)创建bootstrap.properties配置⽂件
#配置中⼼地址
spring.fig.server-addr=127.0.0.1:8848
#spring.profiles.active=dev
# 该配置影响统⼀配置中⼼中的dataId
spring.application.name=service-statistics
(3)把项⽬之前的application.properties内容注释,启动项⽬查看效果
3、补充:springboot配置⽂件加载顺序
其实yml和properties⽂件是⼀样的原理,且⼀个项⽬上要么yml或者properties,⼆选⼀的存在。推荐使⽤yml,更简洁。
bootstrap与application
(1)加载顺序
这⾥主要是说明application和bootstrap的加载顺序。
⽗ApplicationContext 被加载到使⽤ l 的之前。
bootstrap项目
(2)配置区别
三、名称空间切换环境
在实际开发中,通常有多套不同的环境(默认只有public),那么这个时候可以根据指定的环境来创建不同的 namespce,例如,开发、测试和⽣产三个不同的环境,那么使⽤⼀套 nacos 集可以分别建以下三个不同的 namespace。以此来实现多环境的隔离。
2、克隆配置
(1)切换到配置列表:
可以发现有四个名称空间:public(默认)以及我们⾃⼰添加的3个名称空间(prod、dev、test),可以点击查看每个名称空间下的配置⽂件,当然现在只有public下有⼀个配置。
默认情况下,项⽬会到public下 服务名.properties⽂件。
接下来,在dev名称空间中也添加⼀个nacos-provider.properties配置。这时有两种⽅式:
第⼀,切换到dev名称空间,添加⼀个新的配置⽂件。缺点:每个环境都要重复配置类似的项⽬
第⼆,直接通过clone⽅式添加配置,并修改即可。推荐
点击编辑:修改配置内容,端⼝号改为8013以作区分
在项⽬模块中,修改bootstrap.properties添加如下配置
spring.fig.server-addr=127.0.0.1:8848
spring.profiles.active=dev
# 该配置影响统⼀配置中⼼中的dataId,之前已经配置过
spring.application.name=service-statistics
spring.fig.namespace=13b5c197-de5b-47e7-9903-ec0538c9db01

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。