当前位置: 首页 > news >正文

【SpringCloud】SpringCloud教程之Nacos实战(二)

目录

  • 前言
  • 一.Nacos实现配置管理
  • 二.Nacos拉取配置
  • 三.Nacos配置热更新(自动刷新,不需要重启服务)
    • 1.在有`@Value`注入变量所在类添加注解
    • 2.新建类用于属性加载和配置热更新
  • 四.Nacos多环境配置共享
    • 1.多环境共享配置
    • 2.配置的加载优先级测试
    • 3.配置优先级

前言

Nacos实战一,咱们讲的是Nacos的服务注册和服务发现的作用,这篇文章咱们讲解一下Nacos的配置管理的作用。
当服务越来越多,后面要是达到了几千个或者更多服务,修改一个服务配置可能会影响到很多服务,而且修改完,还得重启服务,那要怎么解决呢?
这里我们以用户服务为例去进行配置管理。

一.Nacos实现配置管理

在这里插入图片描述
在这里插入图片描述

二.Nacos拉取配置

1.Nacos拉取配置原理图
在这里插入图片描述
2.pom文件导入依赖

  		<!--nacos的配置管理依赖--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency>

3.在用户服务添加一个bootstrap.yml文件,这个文件是引导文件,加载优先级比application.yml

在这里插入图片描述

服务名称 + 环境.后缀名 就是咱们刚才新建的配置,所以 地址 + 名称 让我们找到了配置文件。
spring:application:name: userservice #服务的名称profiles:active: dev # 环境cloud:nacos:server-addr: localhost:8848 # nacos地址config:file-extension: yaml # 文件后缀名

在这里插入图片描述

4.验证是否能读取到Nacos的配置文件

	//在controller写下面的代码,然后启动服务,看看返回值@Value("${pattern.dateformat}")private String date;/*** 获取当前时间* @return*/@GetMapping("now")public String now(){return LocalDateTime.now().format(DateTimeFormatter.ofPattern(date));}

在这里插入图片描述

三.Nacos配置热更新(自动刷新,不需要重启服务)

1.在有@Value注入变量所在类添加注解

(1) 加@RefreshScope注解

在这里插入图片描述

(2) 修改nacos里的配置文件

在这里插入图片描述

(3) 这时候我们没有重启,只需要修改配置文件

在这里插入图片描述

2.新建类用于属性加载和配置热更新

(1) 定义属性配置类
在这里插入图片描述

(2) 在需要用到配置属性的类注入配置类
在这里插入图片描述

四.Nacos多环境配置共享

多环境配置共享: 比如某个服务在开发、测试、生产环境下配置文件里的属性值是一样的,那我再每个配置文件都写一份,那且不是很麻烦,能不能只改一个,别的环境都可以同步呢?

微服务启动时会从Nacos读取多个配置文件:
userservice-dev.yaml 是开发环境下的配置文件。
userservice.yaml 不论在什么环境下,都会被读取,所以多环境共享配置可以用此文件来实现。

1.多环境共享配置

(1).新建userservice.yaml文件
在这里插入图片描述

(2).在属性配置类加上你共享配置里的属性
在这里插入图片描述

(3).在你需要使用共享属性的类编写代码
在这里插入图片描述

(4).验证一下
在这里插入图片描述

2.配置的加载优先级测试

如果我本地配置文件和nacos远程配置文件都有同一个属性,而且值不一样,会先加载那个?Nacos远程配置开发环境和共享配置文件都有某个属性,会先加载那个?

(1) 测试本地配置和远程共享配置属性一致那个优先级高

①本地yml配置

pattern:name: 本地环境name测试

②nacos远程共享yml配置

在这里插入图片描述

③访问接口

在这里插入图片描述

(2) 测试远程开发环境配置和远程共享配置属性一致那个优先级高

① nacos远程开发环境yml配置

在这里插入图片描述

② nacos远程共享yml配置

和上面配置一样。

③访问接口

在这里插入图片描述

3.配置优先级

服务名-环境.yaml(远程配置) > 服务名.yaml(远程配置) > 本地配置

http://www.lryc.cn/news/32801.html

相关文章:

  • 利用Qemu工具仿真ARM64平台
  • 【Hello Linux】进程控制 (内含思维导图)
  • 嵌入式linux物联网毕业设计项目智能语音识别基于stm32mp157开发板
  • 【黄河流域公安院校网络空间安全技能挑战赛】部分wp
  • 五点CRM系统核心功能是什么
  • window.print() 前端实现网页打印详解
  • php程序员应具有的7种能力
  • quarkus 生产环境与k8s集成总结
  • 蓝桥杯训练day2
  • 为什么99%的程序员都做不好SQL优化?
  • Jenkins最新版安装调试
  • 简略说一下go的sync.RWMutex锁
  • 软考马上要报名了,出现这些问题怎么办?
  • 单链表(增删查改)
  • 端口复用(bind error: Address already in use 问题)
  • 数字化引领乡村振兴,VR全景助力数字乡村建设
  • 【数据结构入门】-链表之双向循环链表
  • Jenkins自动化部署入门
  • Springboot 读取模板excel信息内容并发送邮件, 并不是你想想中的那么简单
  • 蓝桥杯真题31日冲刺 |第一天
  • STM32开发(18)----CubeMX配置RTC
  • Qt 单例模式第一次尝试
  • C语言--一维数组
  • DataGear 4.5.1 发布,数据可视化分析平台
  • Springboot——@valid 做字段校验和自定义注解
  • c语言基础练习题详解
  • C语言设计模式:实现简单工厂模式和工程创建
  • 3.6日报
  • 中文代码88
  • ElasticSearch 基础(五)之 映射