Nacos配置管理

原理图:

1、统一配置管理

① 在Nacos中添加配置信息

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

③ 配置获取的步骤*(原理)

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

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

⑤ 在目标服务的resource目录添加一个bootstrap.yml文件,这个文件是引导文件,优先级高于application.yml

spring:
application:
name: userservice # 服务名称
profiles:
active: dev #开发环境,这里是dev
cloud:
nacos:
server-addr: localhost:8848 # Nacos地址
config:
file-extension: yaml # 文件后缀名

⑥ 在user-service中将pattern.dateformat这个属性注入到UserController中做测试

@RestController
@RequestMapping("/user")
public class UserController { // 注入nacos中的配置属性
@Value("${pattern.dateformat}")
private String dateformat;

// 编写controller,通过日期格式化器来格式化现在时间并返回
@GetMapping("now")
public String now(){
return LocalDate.now().format(
DateTimeFormatter.ofPattern(dateformat, Locale.CHINA)
);
}
// ... 略
}

总结:

将配置交给Nacos管理的步骤
① 在Nacos中添加配置文件
② 在微服务中引入nacos的config依赖
③ 在微服务中添加bootstrap.yml,配置nacos地址、当前环境、服务名称、文件后缀名。这些决定了程序启动时去nacos读取哪个文件

2、配置自动刷新

Nacos中的配置文件变更后,微服务无需重启就可以感知。不过需要通过下面两种配置实现

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

方式二:使用@ConfigurationProperties注解

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

总结:

1、Nacos配置更改后,微服务可以实现热更新,方式:
① 通过@Value注解注入,结合@RefreshScope来刷新
② 通过@ConfigurationProperties注入,自动刷新
2、注意事项:
① 不是所有的配置都适合放到配置中心,维护起来比较麻烦
② 建议将一些关键参数,需要运行时调整的参数放到nacos配置中心,一般都是自定义配置

3、多环境配置共享

微服务启动时会从nacos读取多个配置文件:

  • [spring.application.name]-[spring.profiles.active].yaml,例如:userservice-dev.yaml
  • [spring.application.name].yaml,例如:userservice.yaml

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

多种配置的优先级:(先加载本地 -> 在加载服务名-profile.yaml -> 最后加载服务名.yaml   后加载覆盖先加载)

总结:

1、微服务会从nacos读取的配置文件:
① [服务名]-[spring.profile.active].yaml,环境配置
② [服务名].yaml,默认配置,多环境共享
2、优先级:
① [服务名]-[环境].yaml >[服务名].yaml > 本地配置

4、Nacos集群搭建

图解:

集群搭建步骤:

  1. 搭建MySQL集群并初始化数据库表
  2. 下载解压nacos
  3. 修改集群配置(节点信息)、数据库配置
  4. 分别启动多个nacos节点
  5. nginx反向代理

具体参考:https://www.aliyundrive.com/s/2Yj3oBnyJMt

SpringCloud-03-Nacos配置管理的更多相关文章

  1. SpringCloud Alibaba Nacos服务注册与配置管理

    Nacos SpringCloud Alibaba Nacos是一个狗抑郁构建云原生应用的动态服务发现.配置管理和服务管理平台. Nacos:Dynamic Naming and Configurat ...

  2. Spring Cloud Alibaba | Nacos配置管理

    目录 Spring Cloud Alibaba | Nacos配置管理 1. pom.xml 项目依赖 2. 在 bootstrap.properties 中配置 Nacos server 的地址和应 ...

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

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

  4. SpringBoot开发案例Nacos配置管理中心

    前言 在开发过程中,通常我们会配置一些参数来实现某些功能,比如是否开启某项服务,告警邮件配置等等.一般会通过硬编码.配置文件或者数据库的形式实现. 那么问题来了,如何更加优雅的实现?欢迎来到 Naco ...

  5. Spring Cloud Alibaba 实战(十二) - Nacos配置管理

    本章主要内容是:使用Nacos管理配置以及实现配置管理的原因,配置如何管理以及动态刷新和最佳实现总结,最后是Nacos配置刷新原理解读 该技术类似于Spring Cloud Config 1 配置管理 ...

  6. 基于springcloud gateway + nacos实现灰度发布(reactive版)

    什么是灰度发布? 灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式.在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B ...

  7. SpringCloud Alibaba Nacos 服务注册

    业务服务接入Nacos服务治理中心 启动Nacos访问地址为:http://101.200.201.195:8848/nacos/ 创建bom工程用于管理依赖(下方附加源码地址) 准备工作完成后开始接 ...

  8. 微服务(五)nacos配置管理

    1 统一配置管理 1.1 nacos中添加配置文件 注意:项目的核心配置,需要热更新的配置才有放到nacos管理的必要.基本不会变更的一些配置还是保存在微服务本地比较好. 1.2 从微服务拉取配置 微 ...

  9. Nacos配置管理最佳实践

    Nacos一个最常用的功能就是配置中心,在具体使用时往往是多个团队,甚至整个公司的研发团队都使用同一个Nacos服务.那么使用时如何保证配置在各个团队之间的隔离,又能保证配置管理的便捷性?下面就来介绍 ...

  10. Nacos配置管理

    一.在Nacos添加公共配置 二.项目中读取方式 1. 引入nacos-config依赖 首先,在要使用 nacos 来管理配置的服务中,引入nacos-config 依赖: <!--nacos ...

随机推荐

  1. 【HZERO】安全体系

    安全体系 https://open.hand-china.com/community/detail/521336056218521600#前言前言open&doc-0

  2. leaflet 绘制 带箭头的线

    箭头不是画的线段,是贴的图标,再按方向旋转一下. 代码: //添加箭头线 function addLineDirection(polylinePointArr, source, target) { v ...

  3. GitHub CEO发文:严格限制俄罗斯获取侵略性军事能力所需要的技术

    前几天,在微信群里就有小伙伴发了一些关于GitHub将限制俄罗斯开发人员使用开源软件的消息,引起程序员圈子的热烈讨论. 就在不久前,GitHub CEO在GitHub官方博客发文阐述了对乌克兰战争的回 ...

  4. 复旦大学2020考研机试题-编程能力摸底试题(A-E)

    A.斗牛 给定五个0~9范围内的整数a1,a2,a3,a4,a5.如果能从五个整数中选出三个并且这三个整数的和为10的倍数(包括0),那么这五个整数的权值即为剩下两个没被选出来的整数的和对10取余的结 ...

  5. Dubbo 泛化调用在vivo统一配置系统的应用

    作者:vivo 互联网服务器团队- Wang Fei.LinYupan Dubbo泛化调用特性可以在不依赖服务接口API包的场景中发起远程调用, 这种特性特别适合框架集成和网关类应用开发. 本文结合在 ...

  6. 三、java连接mongo数据库

    系列导航 一.linux单机版mongo安装(带密码验证) 二.mongo集群搭建 三.java连接mongo数据库 四.java对mongo数据库增删改查操作 五.mongo备份篇 mongoexp ...

  7. Nginx(2)---搭建一个静态web服务

    1.配置文件语法及参数说明:nginx.conf worker_processes 1; #工作进程多少个 events { worker_connections 1024; #连接数 } http ...

  8. [吉他谱]duvet

  9. TortoiseSVN 中文手册下载

    TortoiseSVN 链接:https://pan.baidu.com/s/1wAxZST9wKc_HebOrBiewjw  提取码:3gjq

  10. sublime_text4 2023最新版 激活教程

    官网 Sublime HQ - Remarkable Software 东西在教学的时候还是挺好用的,就是要付费购买,穷,没钱 买不起,自己动手丰衣足食. 下载安装包 我现在最新版是4.4152 下面 ...