沉舟侧畔千帆进,病树前头万木春。这篇文章主要讲述Nacos2.0 配置中心管理,动态配置更新相关的知识,希望能为你提供帮助。
前言Nacos除了可以做注册中心,同样可以做配置中心来使用。
当微服务部署的实例越来越多,达到数十、数百时,逐个修改微服务配置就会让人抓狂,而且很容易出错。我们需要一种统一配置管理方案,可以集中管理所有实例的配置。
当前nacos还提供了配置的历史查询以及监听、版本管理等功能,总的来说功能还是很强大的
Nacos2 Config的升级Nacos1.0配置管理之前用 Http1.1 的 Keep Alive 模式 30s 发一个心跳模拟长链接,协议难以理解,内存消耗大,推送性能弱,因此 2.0 通过 gRPC 彻底解决这些问题,内存消耗大量降低
Confg配置的实现
启动Nacos注册中心
引入jar<
dependency>
<
groupId>
com.alibaba.cloud<
/groupId>
<
artifactId>
spring-cloud-starter-alibaba-nacos-config<
/artifactId>
<
/dependency>
创建项目编写bootstrap.yml和application.yml配置文件,bootstrap的配置文件运行时级别比application要高
在springboot2020.0.0以上的版本默认不会去读取bootstrap配置文件,因此要引入
<
!-- 2020.0.0 版本不在默认加载bootstrap 文件 -->
<
dependency>
<
groupId>
org.springframework.cloud<
/groupId>
<
artifactId>
spring-cloud-starter-bootstrap<
/artifactId>
<
/dependency>
bootstrap.yml
# nacos配置
spring:
application:
name: nacos-config-client
cloud:
nacos:
discovery:
server-addr: localhost:8848 #Nacos服务注册中心地址
config:
server-addr: localhost:8848 #Nacos作为配置中心地址
file-extension: yaml #指定yaml格式的配置
application.yml
spring:
profiles:
active: dev # 表示开发环境
创建config配置文件,在Nacos注册中心中
登陆nacos中创建配置文件
新建页面
创建后的效果
解决多环境及多租户数据的隔离问题 在多套不同的环境下,可以根据指定的环境创建不同的Namespace,实现多环境的数据隔离。 Nacos中默认提供的命名空间则是public。
Nacos 中的一组配置集,是组织配置的维度之一,简单的说则是不同的系统或微服务的配置文件可以放在一个组里。 Nacos如果不指定Group,则默认的分组是DEFAULT_GROUP。
dataId是一个配置的唯一标识。 格式:
配置内容
config:
info: nacos-config-client-dev.yaml,version = 4
创建Controller@RefreshScope 必段加上,不然不会刷新配置
@RestController
@RefreshScope //支持Nacos的动态刷新功能。
public class ConfigClientController
@Value("$config.info")
private String info;
@GetMapping("/get")
public String get()
return "获取的config配置下的值为" + info;
运行效果
刷新配置当要修改config时,会提示更新的内容,点击【确认发布】后
控制监控内容发生变化,已经刷新了配置的值,不过注意,如把数据库的配置或者端口之类的加在配置文件中,那可能需要重启才会生效了,下图配置已更新
其他欢迎有问题及时交流~
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多交流
【Nacos2.0 配置中心管理,动态配置更新】
推荐阅读
- 力扣——求一组字符中的第一个回文字符
- Flink流处理API大合集(掌握所有flink流处理API技术,看这一篇就够了)
- maven仓库类型说明hosted/proxy/group
- 解决secureFX中出现中文乱码问题
- 既然JVM有Full GC,为什么还会出现OutOfMemoryError?
- centos修改主机名
- oracle “日期date”与“字符串”相互转换TO_DATE,TO_CHAR
- 为什么要重写equals()方法 和 hashCode()方法
- 文字 banner 生成利器 http://patorjk.com/software/taag