文档章节

基于Nacos实现SpringCloud微服务配置的中心化、外部化和动态化参考实例

xiongchun
 xiongchun
发布于 11/09 22:06
字数 790
阅读 67
收藏 3

引言

本文演示如何使用 Nacos Config Starter 完成 Spring Cloud 应用的配置管理。

Nacos 是阿里巴巴开源的一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

实现nacos配置中心的价值

  • 动态配置服务可以让你以中心化外部化动态化的方式管理所有环境的应用配置和服务配置。
  • 动态配置消除了配置变更时重新部署应用和服务的需要,让配置管理变得更加高效和敏捷。
  • 配置中心化管理让实现无状态服务变得更简单,让服务按需弹性扩展变得更容易。
  • Nacos 提供了一个简洁易用的UI (控制台样例 Demo) 帮助你管理所有的服务和应用的配置。Nacos 还提供包括配置版本跟踪、金丝雀发布、一键回滚配置以及客户端配置更新状态跟踪在内的一系列开箱即用的配置管理特性,帮助您更安全地在生产环境中管理配置变更和降低配置变更带来的风险。

实现步骤

第一步 配置中心

  • 您需要先下载 Nacos 并启动 Nacos server。
  • 在nacos配置中心新增一个配置,dataId为:myclouds-nacos-config-example-dev.yml 配置内容如下:
bankcard:
  id: 532925
  name: xiongchun

myclouds-nacos-config

第二步 创建示例项目 myclouds-nacos-config-example

项目源码和配置请访问我的myclouds代码仓库

  • 启动本项目,增加启动参数: -Dspring.profiles.active=dev -Dserver.port=18000
  • 请求地址:http://127.0.0.1:18000/config/user 将输出:卡号: 532925,姓名: xiongchun
  • 在nacos控制台中将xiongchun修改为gosling,再访问此url,输出将同步发生变化。

配置中心使用过程要注意的几个点

  • dataId的完整格式:${prefix}-${spring.profile.active}.${file-extension}

    • prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
    • spring.profile.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档。
      • 规则1:当 spring.profile.active 为空时,dataId 的拼接格式变成 ${prefix}.${file-extension}
      • 规则2:如果启动环境是test,单配置中心没有创建和test对应的dataId,则视同profile为空,还是会去找${prefix}.${file-extension}格式的配置文件。
    • file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。
  • 通过 Spring Cloud 原生注解 @RefreshScope 实现配置自动更新。

  • 如果是程序中通过@value注解获取配置项的值,则应该给缺省值。@Value("${bankcard.name:}")否则,如果配置中没有这个配置项,则应用启动失败。

写在最后

完整实例代码请访问我的myclouds代码仓库https://gitee.com/osworks/myclouds

© 著作权归作者所有

xiongchun

xiongchun

粉丝 286
博文 37
码字总数 25005
作品 3
杨浦
私信 提问
SpringCloud--鸿鹄Cloud分布式微服务云系统

简介 鸿鹄云Cloud是基于SpringCloud来封装的,是一系列框架的有序集合。利用Spring Boot的开发模式简化了分布式系统基础设施的开发,如服务发现、注册、配置中心、消息总线、负载均衡、断路器...

itcloud
2018/07/25
1K
0
Spring Cloud-honghu Cloud分布式微服务云系统

简介 鸿鹄云Cloud是基于SpringCloud来封装的,是一系列框架的有序集合。利用Spring Boot的开发模式简化了分布式系统基础设施的开发,如服务发现、注册、配置中心、消息总线、负载均衡、断路器...

itcloud
2018/04/25
595
0
Spring Cloud-Honghu Cloud分布式微服务云系统(一)

简介 鸿鹄云Cloud是基于SpringCloud来封装的,是一系列框架的有序集合。利用Spring Boot的开发模式简化了分布式系统基础设施的开发,如服务发现、注册、配置中心、消息总线、负载均衡、断路器...

明理萝
2018/09/07
242
1
Nacos发布0.5.0版本,轻松玩转动态 DNS 服务

© Dmitri Popov 阿里巴巴微服务开源项目Nacos于近期发布v0.5.0版本,该版本主要包括了DNS-basedService Discovery,对Java 11的支持,持续优化Nacos产品用户体验,更深度的与Spring Cloud体...

中间件小姐姐
2018/11/27
12
0
Nacos 发布 0.5.0 版本,轻松玩转动态 DNS 服务

阿里巴巴微服务开源项目Nacos于近期发布v0.5.0版本,该版本主要包括了DNS-basedService Discovery,对Java 11的支持,持续优化Nacos产品用户体验,更深度的与Spring Cloud体系的网关集成等方...

ddatsh
2018/11/22
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

方法重载和重写是什么?有什么区别?

重写:在子类中将父类的成员方法的名称保留,重新编写成员方法的实现内容,更改方法的访问权限,修改返回类型的为父类返回类型的子类。 一些规则: 重写发生在子类继承父类 参数列表必须完全...

ConstXiong
20分钟前
2
0
Spring-Framework 目录

ls spring-orm/src/main/java/org/springframework/orm/hibernate5/ ObjectRetrievalFailureException.java jpa/ ......

MtrS
38分钟前
3
0
大学慕课

Visual C,Turbo C,Dev C的关系 不管是 Visual C、Turbo C 还是 Dev C,本质都是C语言,不存在高下之分。 三种叫法不同是因为 C 语言在三种不同的开发环境中拥有一些不同的开发习惯的区别。...

电子197徐泽彬
57分钟前
4
0
GC偏方 强行fullgc

转自 https://www.jianshu.com/p/be5389ca93f7 FullGC这么恐怖,有办法缓解么,或者说尽量避免它在白天,甚至业务高峰期出现?有!笔者给你分享一个歪门邪道,不记得是多少年前,在哪里道听途...

os_m
今天
4
0
源码分析Mybatis MappedStatement的创建流程

上文源码分析Mybatis MapperProxy创建流程重点阐述 MapperProxy 的创建流程,但并没有介绍 *.Mapper.java(UserMapper.java) 是如何与 *Mapper.xml 文件中的 SQL 语句是如何建立关联的。本文将...

中间件兴趣圈
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部