前言
为什么要使用分布式配置中心
1.在微服务如果使用传统方式管理配置文件,配置文件管理非常复杂。
- 如果生产环境配置文件,可能需要发生改变的时候,重新打开war,重读取配置信息在jvm内存中
什么是分布式配置中心
-
在微服务当中使用同一个服务器管理所有配置文件信息,能够实现后台可管理,当服务器正在运行的时候,如果配置文件发生改变,可以实现不需要重启服务器实时更改配置文件信息。
分布试配置中心框架
阿波罗 线程写分布式配置中心 有图形界面可管理配置文件信息
SpringCloud Config 没有后台可管理分布配置中心,配置文件信息存放在版本控制器里(git|svn)
在使用Zookeeper 实现分布式配置中心,持久节点+事件通知
热部署 其实底层还是会重启服务器 不适合于生产环境 只适合于本地开发测试 `
SpringCloud Config 分布式配置中心原理
首先分析 分布试配置中心需要哪些组件
1.web管理系统~~~后台可以使用图形化界面管理配置文件 。SpringCloud Config没有图像化管理配置文件存放分布式配置文件服务器~~~使用版本控制器存放配置文件信息 使用git环境
2.ConfigServer缓存配置文件服务器(临时缓存存放)~~~
3.ConfigClient读取configService配置文件信息
搭建git环境的目的 :持久化存储配置文件信息 采用码云
git环境上文件夹以项目进行区分
member_config 会员服务配置文件
order_config 订单服务配置文件
2.公司项目中环境是如何区分
- dev 开发环境
- sit 测试环境
- per 预发布环境
- prd 准生产环境
- 演练两个sit环境和pd环境
3.在git环境上如何存放配置文件
在git环境上创建配置文件命名规范
- 会员服务~~~ 服务器名称~~~.properties
2.服务 名称 环境.properties
3.member-dev.properties
1默认情况下不能及时获取实时变更的配置文件信息
2 SpringCloud 分布式配置中心 可以采用手动刷新或者自动刷新
手动刷新 ~~~需要人工调用接口 读取最新的配置文件(监控中心)
自己刷新 ~~~ 消息总线进行实时通知 ~~~springbus
手动属性和自己刷新都不需要重启服务器
@RefreshScope 自动刷新注解
在公司当中,不建议使用自动刷新功能,因为对性能不是很好
建议大家每次在修改完配置文件之后,人工调用/actuator/refresh进行刷新。