【Spring Cloud Alibaba系列】 Nacos 实现统一配置管理

84 阅读2分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

Nacos 实现统一配置管理

在SpringBoot项目中,默认会提供一个application.properties或application.yml文件,把一些全局性的配置或者需要动态维护的配置写入文件,如数据库连接、功能开关、服务器地址等,为了解决不同环境下服务连接配置等信息不同,SpringBoot提供了基于spring.profiles.active=${profile}的机制实现不同环境的切换。

随着单体架构向微服务架构演进,各个应用独立维护本地配置方式有以下不足之处:

  • 配置动态更新:实际应用中会有动态更新配置需要,如修改服务连接地址、限流配置等,在传统模式下,需要手动修改配置文件并且重启应用才能生效,这个方式效率低,重启会导致服务不可用。

  • 配置集中式管理:微服务架构中,核心服务为了保证高性能会部署上百个节点,如果在每个节点中都维护一个配置文件,一旦配置文件某个属性需要修改,工作量巨大。

  • 配置内容安全性和权限:配置文件随着源代码统一提交到代码库中,容易造成生产环境配置信息的数据泄露。

  • 不同部署环境下配置的管理:通过profile机制来管理不同环境的配置,日常维护比较繁琐。

而统一配置管理解决以上的不足,把各个应用系统中的配置放在第三方中间件上统一维护,对于统一配置管理中心上数据变更需要推送到相应服务节点实现动态更新。