分布式配置中心原理解析!SpringCloud Config 实现分布式配置的整体解决方案

SpringCloud Config
SpringCloud 整合了微服务中的整体解决方案:分布式配置中心,分布式锁,分布式任务调度平台,分布式事务,分布式日志收集
产生背景:在微服务中如果使用传统的方式管理配置文件,配置文件管理器将会非常复杂;在生产环境中,配置文件改变时,需要重新配置 war 包,重新读取配置文件信息到 JVM 中
SpringCloud Config 分布式配置中心:
在微服务中使用同一个服务器管理所有服务配置文件信息
在服务器运行的过程中,如果配置文件发生改变,不需要重启服务器就可以实时更改配置文件信息
Config 架构
当一个系统中的配置文件发生改变的时候,需要重新启动该服务,才能使配置文件生效
SpringCloud Config 可以实现微服务中所有系统的配置文件的统一管理,还可以实现当配置文件发生变化时,系统会自动更新获取新的配置
分布式配置中心框架
阿波罗: 携程的分布式配置中心框架,有图形界面可以管理配置文件信息,配置文件信息存放在数据库中
SpringCloud Config: SpringCloud 自带的分布式配置中心框架,没有后台可管理的分布式配置中心,配置文件信息存放在版本控制器中,如 git,svn
分布式配置中心设计原理
设计分布式配置中心的组件
web 管理系统: 可以在 web 后台使用图形界面管理配置文件(SpringCloud Config 没有图形化管理组件)
存放分布式配置文件的服务器:
使用数据库存放配置文件:Apollo
使用版本控制器(git,svn 等)存放配置文件信息:SpringCloud Config
ConfigServer: 缓存配置文件的服务器(用于缓存 git 服务器上的配置文件信息)
ConfigClient: 用于读取 ConfigServer 配置文件信息
分布式配置中心原理
用户提交配置文件信息到版本控制器:git/SVN 服务器上存放
ConfigServer 缓存从 git 服务器上获取到的配置文件信息
ConfigClient 端从 ConfigServer 端获取配置文件信息
git 上创建配置文件名称规范:
服务名称-环境.properties(ticket-dev.properties)
Config 配置文件实时刷新
默认情况下不能实时刷新配置文件信息,需要重启服务器才能刷新配置文件,这样不是很方便
SpringCloud Config 分布式配置中心支持手动刷新和自动刷新:
手动刷新: 需要人工调用接口,读取最新配置文件信息--监控中心
自动刷新: 消息总线进行实时通知--springbus
版权声明: 本文为 InfoQ 作者【攻城狮Chova】的原创文章。
原文链接:【http://xie.infoq.cn/article/ad69305b56efc8b275e717b41】。文章转载请联系作者。
评论