SpringCloud 配置管理:Nacos
统一配置管理
将配置交给 Nacos 管理的步骤:
在 Nacos 中添加配置文件。
在微服务中引入 nacos 的 config 依赖。
在微服务中添加 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 配置更改后,微服务可以实现热更新,两种方式如下:
通过 @Value 注解注入,结合 @RefreshScope 来刷新。
通过 @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
这个文件一定会加载,因此多环境共享配置可以写入这个文件。
配置加载优先级:
多服务配置共享
不同服务之间共享配置文件的两种方式:
通过 shared-configs 指定
通过 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相关推荐
- SpringCloud学习之(十八)SpringCloud Alibaba Nacos服务注册和配置中心
文章目录 (十八)SpringCloud Alibaba Nacos服务注册和配置中心 1.Nacos简介 1.1 为什么叫Nacos 1.2 Nacos是什么 1.3 Nacos能干嘛 1.4 Na ...
- Nacos配置管理-Nacos实现配置管理
Nacos配置管理 Nacos除了可以做注册中心,同样可以做配置管理来使用. 统一配置管理 当微服务部署的实例越来越多,达到数十.数百时,逐个修改微服务配置就会让人抓狂,而且很容易出错.我们需要一种统 ...
- SpringCloud - 整合Nacos启动报错Consider defining a bean of type IClientConfig
SpringCloud - 整合Nacos启动报错Consider defining a bean of type IClientConfig 前言 一. 尝试解决Bug的几种不合适方案 1.1 添加 ...
- SpringCloud使用Nacos服务发现实现远程调用
本文使用SpringCloud结合Nacos服务发现,Feign远程调用做一个简单的Demo. 1 Nacos 关于Nacos之前写了两篇文章关于SpringBoot对它的使用,感兴趣可以查看一下. ...
- 客户端启动报错java.lang.IllegalArgumentException: no server available的解决方案 SpringCloud中 Nacos做注册中心
客户端启动报错java.lang.IllegalArgumentException: no server available的解决方案 SpringCloud中 Nacos做注册中心(谷粒) 报错内容 ...
- SpringCloud Alibaba Nacos服务注册和配置中心-微服务(二十六)
Nacos作为服务注册中心演示 官网文档 基于Nacos的服务提供者 新建Module cloudalibaba-provider-payment9001 POM 父POM <?xml vers ...
- SpringCloud使用Nacos实现配置管理
Nacos的安装可以看:SpringCloud安装Nacos_生骨大头菜的博客-CSDN博客 1.在nacos中添加配置 2.微服务中读取配置 因为项目启动时会先读取nacos的配置文件在读取appl ...
- Springcloud、Nacos 服务注册、负载均衡Ribbon、http客户端Feign
SpringCloud是基于SpringBoot的一整套实现微服务的框架.它提供了微服务开发所需的配置管理.服务发现.断路器.智能路由.微代理.控制总线.全局锁.决策竞选.分布式会话和集群状态管理等组 ...
- SpringCloud OpenFeign + Nacos正确打开方式!
作者 | 磊哥 来源 | Java中文社群(ID:javacn666) 转载请联系授权(微信ID:GG_Stone) Nacos 支持两种 HTTP 服务请求,一个是 REST Template,另一 ...
- SpringCloud Alibaba - Nacos 作为配置中心 读取Properties配置信息
SpringCloud Alibaba是阿里巴巴致力于对微服务的管理.配置.注册等一整套的解决方案. 简介 Nacos 提供用于存储配置和其他元数据的 K-V 存储,为分布式系统中的外部化配置提供服务 ...
最新文章
- 《CCNA无线640-722认证考试指南》——导读
- C++ Primer 5th笔记(chap 17 标准库特殊设施)正则表达式
- Mycat关键特性,什么是MYCAT,MYCAT监控,版本架构,长期规划2.0,Mycat高可用方案
- 教你如何谷歌浏览器免费打电话
- 控制台一直报错, [WDS] Disconnected!
- mysql pmod项目_内置函数 - 数学函数 - 《Apache Doris 文档(201812)》 - 书栈网 · BookStack...
- postek二次开发_20190626_二次开发BarTender打印机_C#代码_一边读取TID_一边打印_打印机POSTEK...
- java servlet 获取mac地址_Java开发网 - 请教大家几个关于servlet取ip和mac地址的问题~~!...
- 20165323 第一周学习总结
- 49 字符大小写排序
- 编程机器人考级证书有用吗_机器人编程有等级考试吗?
- [FAQ10926][USB serial number客制化][系列5]:如何实现可以通过pc工具来修改serialnumber?
- Reflex WMS入门系列三十:不使用RF功能做上架
- 欧拉-拉格朗日方程(The Euler-Lagrange equation)
- 利用OpenCV实现一个简单的实时人脸检测项目并显示FPS
- c语言如何编一个警报声音,电脑如何自定义警报的声音具体该如何操作
- ACE_TAO 017 ACE_wrappers\examples\Reactor
- go[x]agent在windows和ubuntu下的安装步骤
- 输入一个整数求其位数和各个位数之和
- css3中transition过渡和animation动画的区别