统一配置管理

将配置交给 Nacos 管理的步骤:

  1. 在 Nacos 中添加配置文件。

  2. 在微服务中引入 nacos 的 config 依赖。

  3. 在微服务中添加 bootstrap.yml,配置 nacos 地址、当前环境、服务名称、文件后缀名。这些决定了程序启动时去 nacos 读取哪个文件。

具体操作:

1)在 Nacos 中添加配置信息

2)在弹出表单中填写配置信息

3)配置获取的步骤如下

4)引入 Nacos 的配置管理客户端依赖

      <!--nacos连接注册中心--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>2.2.2.RELEASE</version></dependency><!--nacos 配置中心--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId><version>2.2.2.RELEASE</version></dependency>

5)在 resource 目录添加一个 bootstrap.yml 文件,这个文件是引导文件,优先级高于 application.yml

spring:application:name: nacos-provider-paymentcloud:nacos:discovery:namespace: 18b79e76-8c78-4494-b4fe-be0e587ff6d7# 服务注册地址 ip加端口号server-addr: 127.0.0.1:8848config:prefix: providerId         # dataId   ${prefix}-${spring.profiles.active}.${file-extension}server-addr: 127.0.0.1:8848username: nacospassword: nacosnamespace: 18b79e76-8c78-4494-b4fe-be0e587ff6d7group: DEFAULT_GROUPfile-extension: yaml

6)测试:将(Nacos 配置内容中的)dataId.result: 111 这个属性注入到 UserController 中

package com.pooj.cloudnacosconfig3355.controller;import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("/user")  ///user/getData
@RefreshScope
public class CloudNacos {@Value("${dataId.result}")private String dataid;@RequestMapping(value = "/getData")public String getDate(){return dataid;}}

配置热更新

Nacos 配置更改后,微服务可以实现热更新,两种方式如下:

  1. 通过 @Value 注解注入,结合 @RefreshScope 来刷新。

  2. 通过 @ConfigurationProperties 注入,自动刷新。

注意事项:

启动类: @EnableDiscoveryClient

  • 不是所有的配置都适合放到配置中心,否则维护起来比较麻烦。

  • 建议将一些关键参数,需要运行时调整的参数放到 nacos 配置中心,一般都是自定义配置。

方式一:在 @Value 注入的变量所在类上添加注解 @RefreshScope

方式二:使用 @ConfigurationProperties 注解

@Component
@Data
@ConfigurationProperties(prefix="pattern")
public class PatternProperties {private String dateformat;
}

配置共享

多环境配置共享

微服务会从 nacos 读取的配置文件:

  • [服务名]-[spring.profile.active].yaml环境配置(例如 userservice-dev.yaml)。

  • [服务名].yaml默认配置,多环境共享(例如 userservice.yaml)。

  • 无论 profile 如何变化,[服务名].yaml 这个文件一定会加载,因此多环境共享配置可以写入这个文件。

配置加载优先级:

多服务配置共享

不同服务之间共享配置文件的两种方式:

  1. 通过 shared-configs 指定

  2. 通过 extension-configs 指定

方式一:通过 shared-configs 指定

spring:application:name: userservice  # 服务名称profiles:active: dev  # 环境cloud:nacos:server-addr: localhost:8848  # Nacos 地址config: file-extension: yaml  # 文件后缀名shared-configs:  # 多微服务间共享的配置列表- dataId: common.yaml  # 要共享的配置文件 id

方式二:通过 extension-configs 指定

spring:application:name: userservice  # 服务名称profiles:active: dev  # 环境cloud:nacos:server-addr: localhost:8848  # Nacos 地址config:file-extension: yaml  # 文件后缀名extends-configs:  # 多微服务间共享的配置列表- dataId: extend.yaml  # 要共享的配置文件 id

多种配置的优先级:

SpringCloud 配置管理:Nacos相关推荐

  1. SpringCloud学习之(十八)SpringCloud Alibaba Nacos服务注册和配置中心

    文章目录 (十八)SpringCloud Alibaba Nacos服务注册和配置中心 1.Nacos简介 1.1 为什么叫Nacos 1.2 Nacos是什么 1.3 Nacos能干嘛 1.4 Na ...

  2. Nacos配置管理-Nacos实现配置管理

    Nacos配置管理 Nacos除了可以做注册中心,同样可以做配置管理来使用. 统一配置管理 当微服务部署的实例越来越多,达到数十.数百时,逐个修改微服务配置就会让人抓狂,而且很容易出错.我们需要一种统 ...

  3. SpringCloud - 整合Nacos启动报错Consider defining a bean of type IClientConfig

    SpringCloud - 整合Nacos启动报错Consider defining a bean of type IClientConfig 前言 一. 尝试解决Bug的几种不合适方案 1.1 添加 ...

  4. SpringCloud使用Nacos服务发现实现远程调用

    本文使用SpringCloud结合Nacos服务发现,Feign远程调用做一个简单的Demo. 1 Nacos 关于Nacos之前写了两篇文章关于SpringBoot对它的使用,感兴趣可以查看一下. ...

  5. 客户端启动报错java.lang.IllegalArgumentException: no server available的解决方案 SpringCloud中 Nacos做注册中心

    客户端启动报错java.lang.IllegalArgumentException: no server available的解决方案 SpringCloud中 Nacos做注册中心(谷粒) 报错内容 ...

  6. SpringCloud Alibaba Nacos服务注册和配置中心-微服务(二十六)

    Nacos作为服务注册中心演示 官网文档 基于Nacos的服务提供者 新建Module cloudalibaba-provider-payment9001 POM 父POM <?xml vers ...

  7. SpringCloud使用Nacos实现配置管理

    Nacos的安装可以看:SpringCloud安装Nacos_生骨大头菜的博客-CSDN博客 1.在nacos中添加配置 2.微服务中读取配置 因为项目启动时会先读取nacos的配置文件在读取appl ...

  8. Springcloud、Nacos 服务注册、负载均衡Ribbon、http客户端Feign

    SpringCloud是基于SpringBoot的一整套实现微服务的框架.它提供了微服务开发所需的配置管理.服务发现.断路器.智能路由.微代理.控制总线.全局锁.决策竞选.分布式会话和集群状态管理等组 ...

  9. SpringCloud OpenFeign + Nacos正确打开方式!

    作者 | 磊哥 来源 | Java中文社群(ID:javacn666) 转载请联系授权(微信ID:GG_Stone) Nacos 支持两种 HTTP 服务请求,一个是 REST Template,另一 ...

  10. SpringCloud Alibaba - Nacos 作为配置中心 读取Properties配置信息

    SpringCloud Alibaba是阿里巴巴致力于对微服务的管理.配置.注册等一整套的解决方案. 简介 Nacos 提供用于存储配置和其他元数据的 K-V 存储,为分布式系统中的外部化配置提供服务 ...

最新文章

  1. 《CCNA无线640-722认证考试指南》——导读
  2. C++ Primer 5th笔记(chap 17 标准库特殊设施)正则表达式
  3. Mycat关键特性,什么是MYCAT,MYCAT监控,版本架构,长期规划2.0,Mycat高可用方案
  4. 教你如何谷歌浏览器免费打电话
  5. 控制台一直报错, [WDS] Disconnected!
  6. mysql pmod项目_内置函数 - 数学函数 - 《Apache Doris 文档(201812)》 - 书栈网 · BookStack...
  7. postek二次开发_20190626_二次开发BarTender打印机_C#代码_一边读取TID_一边打印_打印机POSTEK...
  8. java servlet 获取mac地址_Java开发网 - 请教大家几个关于servlet取ip和mac地址的问题~~!...
  9. 20165323 第一周学习总结
  10. 49 字符大小写排序
  11. 编程机器人考级证书有用吗_机器人编程有等级考试吗?
  12. [FAQ10926][USB serial number客制化][系列5]:如何实现可以通过pc工具来修改serialnumber?
  13. Reflex WMS入门系列三十:不使用RF功能做上架
  14. 欧拉-拉格朗日方程(The Euler-Lagrange equation)
  15. 利用OpenCV实现一个简单的实时人脸检测项目并显示FPS
  16. c语言如何编一个警报声音,电脑如何自定义警报的声音具体该如何操作
  17. ACE_TAO 017 ACE_wrappers\examples\Reactor
  18. go[x]agent在windows和ubuntu下的安装步骤
  19. 输入一个整数求其位数和各个位数之和
  20. css3中transition过渡和animation动画的区别

热门文章

  1. 谷歌是如何跌下神坛的?
  2. 元气森林海外负责人柳甄离职:是柳传志侄女 柳青堂姐妹
  3. Android强制系统横屏的原理和实现
  4. PHP制作面包屑,thinkPHP制作面包屑方法
  5. python读书心得体会范文_读书心得体会范文6篇
  6. 【优化模型】推销员问题模型
  7. 恶补地理知识--四大洋,七大洲
  8. GTP编译报错,需要增加IBUF
  9. Html+Css+Js轮播图实现
  10. MSDN Library - October 2001 精简方法