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

引言

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

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

实现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代码仓库spring

  • 启动本项目,增长启动参数: -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 实现配置自动更新。app

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

写在最后

完整实例代码请访问个人myclouds代码仓库https://gitee.com/osworks/myclouds3d

相关文章
相关标签/搜索