Nacos的基本使用教程Nacos配置中心

文章资讯 2020-06-14 20:55:41

Nacos的基本使用教程Nacos配置中心

前言
前置知识:Nacos的基本使用(1)——入门
这个笔记是结合小白的SringCloud+Vue在线教育项目的。如有需要,欢迎翻看。
SringCloud+Vue在线教育项目(全栈)
一、配置中心介绍
1、SringCloudConfig
SringCloudConfig为分布式系统的外部配置提供了服务端和客户端的支持方案。在配置的服务端您可以在所有环境中为应用程序管理外部属性的中心位置。客户端和服务端概念上的SringEnvironment和ProertySource抽象保持同步,它们非常适合Sring应用程序,但是可以与任何语言中运行的应用程序一起使用。当应用程序在部署管道中从一个开发到测试直至进入生产时,您可以管理这些环境之间的配置,并确保应用程序在迁移时具有它们需要运行的所有内容。服务器存储后端的默认实现使用git,因此它很容易支持标记版本的配置环境,并且能够被管理内容的各种工具访问。很容易添加替代的实现,并用Sring配置将它们插入。
SringCloudConfig包含了Cent和Server两个部分,server提供配置文件的存储、以接口的形式将配置文件的内容提供出去,cent通过接口获取数据、并依据此数据初始化自己的应用。Sringcloud使用git或svn存放配置文件,默认情况下使用git。
2、Nacos替换Config
Nacos可以与Sring,SringBoot,SringCloud集成,并能代替SringCloudEuka,SringCloudConfig。通过NacosServer和sring-cloud-starter-ababa-nacos-config实现配置的动态变更。
(1)应用场景
在系统开发过程中,开发者通常会将一些需要变更的参数、变量等从代码中分离出来独立管理,以独立的配置文件的形式存在。目的是让静态的系统工件或者交付物(如WAR,JAR包等)更好地和实际的物理运行环境进行适配。配置管理一般包含在系统部署的过程中,由系统管理员或者运维人员完成。配置变更是调整系统运行时的行为的有效手段。
(2)解决的问题
如果微服务架构中没有使用统一配置中心时,所存在的问题:配置文件分散在各个项目里,不方便维护
配置内容安全与权限
更新配置后,项目需要重启(3)nacos配置中心作用:
系统配置的集中管理(编辑、存储、分发)、动态更新不重启、回滚配置(变更管理、历史版本管理、变更审计)等所有与配置相关的活动。
二、读取Nacos配置中心的配置文件
1、在Nacos创建统一配置文件
(1)点击创建按钮(2)输入配置信息
DataID的完整规则格式如下
${fix}-${sring.rofiles.active}.${file-extension}fix默认为所属工程配置sring.acation.name的值(即:nacos-rovider),也可以通过配置项sring.cloud.nacos.config.fix来配置。
sring.rofiles.active=dev即为当前环境对应的rofile。注意:当sring.rofiles.active为空时,对应的连接符-也将不存在,dataId的拼接格式变成${fix}.${file-extension}
file-exetension为配置内容的数据格式,可以通过配置项sring.cloud.nacos.config.file-extension来配置。目前只支持roerties和yaml类型。
(3)确保配置信息无误后,点击确认(4)点击配置列表即可看到配置文件2.以任一模块为例
(1)在service的om.xml中引入依赖
<!--配置中心-->
<deendency>
<grouId>org.sringframework.cloud<grouId>
<artifactId>sring-cloud-starter-ababa-nacos-config<artifactId>
<deendency>(2)创建bootstra.roerties配置文件
#配置中心地址
sring.cloud.nacos.config.server-addr=127.0.0.1:8848
#sring.rofiles.active=dev
#该配置影响统一配置中心中的dataId
sring.acation.name=service-statistics-dev(3)把项目之前的acation.roerties内容注释,启动项目查看效果
控制台输出了相关信息
2020-06-1211:11:01.875INFO8676---[-127.0.0.1_8848]trationDelegate$BeanPostProcessorChecker:Bean'org.sringframework.cloud.autoconfigu.ConfigurationProertiesRebinderAutoConfiguration'oftye[org.sringframework.cloud.autoconfigu.ConfigurationProertiesRebinderAutoConfiguration]isnotegibleforgettingrocessedbyallBeanPostProcessors(forexamle:notegibleforauto-roxying)
2020-06-1211:11:02.464INFO8676---[-127.0.0.1_8848]o.s.c.a.n.c.NacosProertySourceBuilder:Loadingnacosdata,dataId:'service-statistics-dev.roerties',grou:'DEFAULT_GROUP'
2020-06-1211:11:02.468INFO8676---[-127.0.0.1_8848]b.c.ProertySourceBootstraConfiguration:Locatedroertysource:ComositeProertySource{name='NACOS',roertySources=[NacosProertySource{name='service-statistics-dev-dev.roerties'},NacosProertySource{name='service-statistics-dev.roerties'}]}
2020-06-1211:11:02.469INFO8676---[-127.0.0.1_8848]o.s.boot.SringAcation:Theflowingrofilesaactive:dev3、补充:sringboot配置文件加载顺序
其实yml和roerties文件是一样的原理,且一个项目上要么yml或者roerties,二选一的存在。推荐使用yml,更简洁。
bootstra与acation
(1)加载顺序
bootstra.roertiesyml-->acation.roertiesyml-->acation-dev.roertiesyml(2)配置区别
bootstra.yml和acation.yml都可以用来配置参数。
bootstra.yml可以理解成系统级别的一些参数配置,这些参数一般是不会变动的。
acation.yml可以用来定义应用级别的。
三、命名空间
在实际开发中,通常有多套不同的环境(默认只有ubc),那么这个时候可以根据指定的环境来创建不同的namesce,例如,开发、测试和生产三个不同的环境,那么使用一套nacos集群可以分别建以下三个不同的namesace。以此来实现多环境的隔离。
(1)切换命名空间
1点击命名空间2新建命名空间3点击克隆4目标空间指定为dev5在bootstra.roerties中添加配置
值为命名空间的id值
sring.cloud.nacos.config.namesace=c2074590-581c-4a5c-9d43-ea48953f5bf2四、加载多个配置文件
1分离acation.roerties,注释掉端口配置
2新建ort.roerties
server.ort=80083在bootstra.roerties中添加配置
#加载配置文件
sring.cloud.nacos.config.ext-config[0].data-id=ort.roerties
#开启动态刷新配置,否则配置文件修改,工程无法感知
sring.cloud.nacos.config.ext-config[0].fsh=true4重新启动项目即可8小时Python零基础轻松入门