目录

一、配置中心介绍

1、Spring Cloud Config

2、Nacos替换Config

(1)应用场景

二、读取Nacos配置中心的配置文件

1、在Nacos创建统一配置文件

2、以service-statistics模块为例

3、补充:springboot配置文件加载顺序

三、名称空间切换环境

四、多配置文件加载


一、配置中心介绍

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 的完整规则格式如下

{spring.profile.active}.${file-extension}

  • prefix 默认为所属工程配置spring.application.name 的值(即:nacos-provider),也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
  • spring.profiles.active=dev 即为当前环境对应的 profile。 注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 {file-extension}
  • file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。

2、以service-statistics模块为例

(1)在service中引入依赖

          <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency>

(2)创建bootstrap.properties配置文件

#配置中心地址
spring.cloud.nacos.config.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的加载顺序。

bootstrap.yml(bootstrap.properties)先加载
application.yml(application.properties)后加载
bootstrap.yml 用于应用程序上下文的引导阶段。

bootstrap.yml 由父Spring ApplicationContext加载。

父ApplicationContext 被加载到使用 application.yml 的之前。

(2)配置区别

bootstrap.yml 和application.yml 都可以用来配置参数。

bootstrap.yml 可以理解成系统级别的一些参数配置,这些参数一般是不会变动的。
application.yml 可以用来定义应用级别的。

三、名称空间切换环境

在实际开发中,通常有多套不同的环境(默认只有public),那么这个时候可以根据指定的环境来创建不同的 namespce,例如,开发、测试和生产三个不同的环境,那么使用一套 nacos 集群可以分别建以下三个不同的 namespace。以此来实现多环境的隔离。

1、创建命名空间

默认只有public,新建了dev、test和prod命名空间

2、克隆配置

(1)切换到配置列表:

可以发现有四个名称空间:public(默认)以及我们自己添加的3个名称空间(prod、dev、test),可以点击查看每个名称空间下的配置文件,当然现在只有public下有一个配置。

默认情况下,项目会到public下找 服务名.properties文件。

接下来,在dev名称空间中也添加一个nacos-provider.properties配置。这时有两种方式:

第一,切换到dev名称空间,添加一个新的配置文件。缺点:每个环境都要重复配置类似的项目

第二,直接通过clone方式添加配置,并修改即可。推荐

点击编辑:修改配置内容,端口号改为8013以作区分

在项目模块中,修改bootstrap.properties添加如下配置

spring.cloud.nacos.config.server-addr=127.0.0.1:8848spring.profiles.active=dev
# 该配置影响统一配置中心中的dataId,之前已经配置过
spring.application.name=service-statistics
spring.cloud.nacos.config.namespace=13b5c197-de5b-47e7-9903-ec0538c9db01

namespace的值为:

重启服务提供方服务,测试修改之后是否生效

四、多配置文件加载

在一些情况下需要加载多个配置文件。假如现在dev名称空间下有三个配置文件:service-statistics.properties、redis.properties、jdbc.properties

添加配置,加载多个配置文件

阿里巴巴注册中心nacos相关推荐

  1. 服务注册中心Nacos

    文章目录 一.服务注册中心Nacos最佳实践 1.Nacos注册中心简介 背景分析 Nacos概述 构建Nacos服务 初始化配置 服务启动与访问 2.服务注册与调用入门(重点) 业务描述 生产者服务 ...

  2. 微服务笔记:第一章_微服务简介|Eureka注册中心|Nacos注册中心|Nacos配置管理|Feign|Gateway服务网关

    微服务笔记:第一章_微服务简介|Eureka注册中心|Nacos注册中心|Nacos配置管理|Feign|Gateway服务网关 1. 微服务简介 1.1 服务架构演变 1.2 SpringCloud ...

  3. 阿里注册中心nacos使用整合Dubbo-原创

    阿里注册中心nacos是今年开源的框架,一开始以为就是个zk.后面看了图才明白他对标的竟然是consul\eureka,最重要是完美支持dubbo.我想今年开源它也是别有用意 .(目前nacos0.7 ...

  4. 微服务系列之ZooKeeper注册中心和Nacos注册中心Nacos和Zookeeper对比

    一.ZooKeeper注册中心 Zookeeper 是 Apache Hadoop 的子项目,是一个树型的目录服务,支持变更推送,适合作为 Dubbo 服务的注册中心,工业强度较高,可用于生产环境,推 ...

  5. Gateway 转发请求至注册中心Nacos中的服务404问题(网关日志提示availabilityFilteringRule.activeConnectionsLimit = 2147483647)

    Gateway 转发请求至注册中心Nacos中的服务404问题 问题描述 一次练手项目中,原本没问题并且测试过的gateway,再次转发链接的时候返回404状态码.gateway和被调用模块的日志信息 ...

  6. nacos 公共_SpringCloud配合注册中心Nacos的使用

    一.Nacos简介 Nacos核心提供的两个功能:服务注册与发现,动态配置管理. 1.服务注册与发现 Nacos提供基于DNS和基于RPC的服务发现,即能被用来支持https/http的服务注册与发现 ...

  7. nacos enablediscoveryclient_Spring Cloud(五):注册中心nacos篇

    点击蓝字关注我们 大家好,我是杰哥,转眼间,我们的Spring Cloud专辑已到了第五次分享,而我们的注册中心篇章已经分别完成了Eureka.zookeeper篇,今天正式进入nacos篇的学习na ...

  8. SpringCloud:注册中心nacos

    一.Nacos简介 Nacos 英文全称Dynamic Naming and Configuration Service,Na为naming/nameServer即注册中心,co为configurat ...

  9. 微服务之注册中心Nacos

    Nacos是什么? Nacos是阿里巴巴的产品,选择是SpringCloud中的一个组件,比Eureka组件功能更加丰富. 一个项目要想成为微服务项目体系的一部分必须将当前项目的信息注册到Nacos. ...

最新文章

  1. SAS编程基础 - 逻辑库和数据集
  2. IT人员健康信号之颈椎病自疗
  3. 每天一道LeetCode-----实现LRU置换算法
  4. 腾讯2016春招之算法编程解析
  5. 红帽企业版linux 7.4更新启动,红帽Linux企业版7.4 淘汰Btrfs文件系统
  6. 【Python 标准库学习】多种操作系统接口和常用路径操作库 — os 与 os.path
  7. digit函数(信息学奥赛一本通-T1164)
  8. ArcSDE9.2连接Oracle10g之后的疑问(待解决)
  9. 使用ZipCodeValidatorDomainType验证不同国家的邮编
  10. Flutter:布局
  11. 2018最新最全百度网盘限速解决方法
  12. php用redis实现队列,PHP使用Redis实现队列
  13. UNICODE,GBK,UTF-8区别
  14. 国内外Java学习论坛汇总
  15. 从高盛AI报告看国内智能语音翘楚 但没有科大讯飞
  16. 网络打印机计算机服务,在Windows7中添加网络打印机的解决方案提示“本地打印机后台处理程序服务未运行”...
  17. remix os显卡linux,Remix OS 系统 PC版下载和评测 | Remix OS是什么系统_什么值得买
  18. 机电工程专业成功转行IT的真实经历
  19. 怎么正确使用代理IP
  20. 4年小Java的心路历程,工作感悟

热门文章

  1. “友谊竞赛”活动策划书
  2. python README
  3. 数据挖掘与机器学习关系与区别
  4. Activity那些不为人知的秘密
  5. Redis—Bitmaps、HyperLogLog 、Geospatialip(地址报错(连接失败))
  6. java计算机毕业设计人才公寓管理系统源码+数据库+系统+lw文档+mybatis+运行部署
  7. 怎么把pdf转换为word办公文档格式
  8. 【Tesla Bot,让我想起了Sophia--那个要号称毁灭人类的女机器人】
  9. 这三款图片自动识别软件值得推荐
  10. B站昨晚挂了之后,刷新页面出现的“tengine”是个啥?