学习spring cloud记录9-nacos深一步学习
前言
统一配置管理将各个服务的配置管理起来,如果发生变化,可以主动向服务发送信息。配置管理服务也在nacos中。
配置热更新
在配置列表新建配置


发布后,这个配置已经进入统一配置管理
服务配置拉去
项目先读取nacos的配置文件,然后再读取本地的配置文件。bootstrap.yml文件要比application.yml的优先级高,所以可以把nacos的地址等信息文件内容移到bootstrap.yml
引入nacos配置管理依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
然后新建bootstrap.yml文件,配置nacos信息,然后把application.xml重复的信息删除
spring:
application:
name: demo-user
profiles:
active: dev
cloud:
nacos:
server-addr: localhost:8848
config:
file-extension: yaml
测试是否能够读取到nacos信息
先查看nacos中的配置是什么样的
名称为demo-user-dev.yaml,内容为
pattern:
dateformat: yyyy-MM-dd HH:mm:ss
启动时报错Param 'serviceName' is illegal, serviceName is blank,因为spring-cloud-dependencies 2020.0.0 版本不在默认加载bootstrap 文件,如果需要加载bootstrap 文件需要手动添加依赖。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
在controller写一个读取配置文件的方法
@Value("${pattern.dateformat}")
private String dataformat;
@GetMapping("now")
public String now(){
return LocalDateTime.now().format(DateTimeFormatter.ofPattern(dateformat));
}
运行后获得
说明nacos配置文件已经读取到本地
配置热部署
方式一
在@Value的类上添加注解@RefreshScope
@RestController
@RequestMapping(value = "user")
@RefreshScope
public class SysUserController {
@Value("${pattern.dataformat}")
private String dataformat; ...
这样直接去nacos中修改配置,发布后不用重启服务
方式二
使用注解@ConfigurationProperties
新建一个类,专门完成属性加载
package priv.sinoam.demouser.config; import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component; /**
* 加载nacos配置类
* @author hasee
*/
@Data
@Component
@ConfigurationProperties(prefix = "pattern")
public class Pattern { private String dateformat;
}
@Component将其注册成spring的一个bean,prefix和变量名要和配置文件中一致,将代码修改为
@RestController
@RequestMapping(value = "user")
public class SysUserController { @Autowired
private SysUserService sysUserService; @Autowired
private Pattern pattern; @GetMapping("now")
public String now(){
return LocalDateTime.now().format(DateTimeFormatter.ofPattern(pattern.getDateformat()));
}
这样直接去nacos中修改配置,发布后不用重启服务
多环境配置共享
微服务启动时从nacos读取多个配置文件:
[spring.application.name]-[spring.profiles.active].yaml,即和服务名跟环境有关系
[spring.application.name].yaml,即只和服务名有关系
所以可以将配置文件放在下面这个配置文件中。
所以在nacos新建配置时,使用服务名.yanl即可,在本项目中例如demo-user.yaml
优先级:服务名-active.yaml>服务名.yaml>本地配置
结语
:)
学习spring cloud记录9-nacos深一步学习的更多相关文章
- Spring Cloud Alibaba(4)---Nacos(注册中心)
Nacos(注册中心) 有关Spring Cloud Alibaba之前写过三篇文章. Spring Cloud Alibaba(1)---入门篇 Spring Cloud Alibaba(2)--- ...
- Spring Cloud Alibaba(2)---Nacos概述
Spring Cloud Alibaba(2)---nacos概述 上一篇博客讲了有关 SpringCloudAlibaba的概述,这篇开始讲SpringCloudAlibaba组件之一---Naco ...
- Spring Cloud Alibaba(5)---Nacos(配置中心)
Nacos(配置中心) 有关Spring Cloud Alibaba之前写过四篇文章,这篇也是在上面项目的基础上进行开发. Spring Cloud Alibaba(1)---入门篇 Spring C ...
- Spring Cloud Alibaba(6)---Nacos持久化Mysql8.0版本
Nacos持久化Mysql8.0版本 有关Nacos之前写过三篇文章. Spring Cloud Alibaba(3)---Nacos概述 Spring Cloud Alibaba(4)---Naco ...
- Spring Cloud Alibaba(3)---Nacos概述
Spring Cloud Alibaba(3)---nacos概述 上一篇博客讲了有关 SpringCloudAlibaba的概述,这篇开始讲SpringCloudAlibaba组件之一---Naco ...
- Spring Cloud Alibaba 教程 | Nacos(五)
扩展配置(extended configurations) 通过之前的学习,我们知道应用引入nacos配置中心之后默认将会加载Data ID= ${prefix} - ${spring.profile ...
- Spring Cloud Alibaba 之Nacos
Nacos 技术讲解 一提到分布式系统就不的不提一下 CAP 原则 什么是CAP CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency).可用性(Availability ...
- Spring Cloud Alibaba 之 Nacos
Nacos 技术讲解 一提到分布式系统就不的不提一下 CAP 原则 什么是CAP CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency).可用性(Availability ...
- 【微服务】使用spring cloud搭建微服务框架,整理学习资料
写在前面 使用spring cloud搭建微服务框架,是我最近最主要的工作之一,一开始我使用bubbo加zookeeper制作了一个基于dubbo的微服务框架,然后被架构师否了,架构师曰:此物过时.随 ...
- Spring Cloud Alibaba 使用nacos 注册中心
### 背景 上一文我们讲到了如何去搭建注册中心,这一次我们讲述如何使用nacos作为注册中心 ### spring-cloud-alibaba-basis 创建基础依赖 首先我们创建一个spring ...
随机推荐
- Linux运维基础(二)网络常见问题
问题:网卡地址配置不正确 1.网卡地址和虚拟主机的网卡地址不统一 2.网关和DNS的信息不正确 解决方法:如何重新配置网卡地址信息 步骤一:在命令行中使用"nmtui"命令,回车 ...
- dbeaver导入sql脚本报错的排查—— ERROR 1366 (HY000) at line
描述 在使用dbeaver进行sql脚本导入的时候报了以下的错误. C:\Users\xxxx\AppData\Roaming\DBeaverData\drivers\clients\mysql_8\ ...
- 【记录】飞书多维表格|连接多选的结果 List 形成字符串(没有 TEXTJOIN 和 INDEX 和 ARRAYFORMULA)
前言 当我使用 TEXTJOIN 或者 ARRAYFORMULA 的时候,它都显示没有.我找了一下文档也没找到解决办法.结果我研究了一下多维表格的设计,详见官方文档:多维表格公式字段概述,才发现它有 ...
- 【安装】Windows下安装Anaconda、pytorch,以及修改pip默认安装路径
写在最前: 如果不打算用conda创建并管理虚拟环境,可以不装Anaconda,随便找个python安装包一路next就行. 文章目录 Windows下安装Anaconda PS:之后的步骤同样适用于 ...
- 【工具】Vscode插件推荐(不用谷歌api、支持短句英汉互译、支持查词、支持自动补全、不需要浏览器)
需求: 1)偶尔需要查英文生词: 2)有时候想不起来中文对应的英文: 3)不想回到浏览器打开一堆网页: 4)谷歌翻译挂了. 偶尔需要的需求: 1)短句翻译. 因为谷歌翻译挂了,首先,排除最热门的翻译插 ...
- 操作系统综合题之“按要求是个进程协调完成任务,补充完整下列程序,将编号①~⑩处空缺的内容填写(Buffer缓冲区问题-代码补充)”
1.问题:假设某系统有四个进程.input1和input2进程负责从不同设备读取数据,分别表示为data1和data2,存放在缓冲区Buffer中,output1和output2进程负责从Buffer ...
- 网络编程:TCP故障模式
故障模式总结 异常情况可归结为两大类: 第一类,是对端无FIN包发送出来的情况:第二类是对端有FIN包发出来 对端无FIN包发送出 网络终端造成对端无FIN包 很多原因都会造成网络中断,这种情况,TC ...
- UML类图-UML Class Diagram
.wj_nav { display: inline-block; width: 100%; margin-top: 0; margin-bottom: 0.375rem } .wj_nav_1 { p ...
- Qt图像处理技术四:图像二值化
Qt图像处理技术四:图像二值化 github 如果你觉得有用的话,期待你的小星星 实战应用项目: github :https://github.com/dependon/simple-image-fi ...
- L2-2、示范教学与角色扮演:激发模型"模仿力"与"人格"
一.Few-shot 教学的核心原理与优势 在与大语言模型交互时,Few-shot(少样本)教学是一种强大的提示技术.其核心原理是通过提供少量示例,引导模型理解我们期望的输出格式和内容风格. Few- ...