[TOC]
# 问题
以前我们配置是写在配置文件中
如果微服务没有配置中心,那么有很多隐患,
配置不标准,格式不统一,
生效周期长,配置不知道谁改的,没有审计功能,追溯谁调整的
有哪些可以配置
连接字符串,超时参数,业务开关,功能的开关(如果通过静态或者发布方式,响应周期长,还有可能失败)
# 简单原理图
![](https://box.kancloud.cn/bf8bfc8f9d97b6f978d250f43651a7b9_1662x734.png)
开发人员可以对配置中心更改配置,然后服务可以实时更改自己配置
2种(各有优劣)
1. 自己不断的去拉,然后更新自己(这个可以保证拉到,这次没拉到,下次再拉)
2. 配置中心自己主动推送(这个可以实时,但是没推成功,就不是实时)
# 携程的配置中心
Apollo配置中心(还有springboot的)
![](https://box.kancloud.cn/164492343a4d7c4fc78c336a9c901c72_1597x782.png)
配置中心是个服务器server端
开发人员通过server更改,然后到对应的客户端
客户端有缓存,为了避免缓存失效,把缓存同步到本地文件
如果配置中心挂了,机器断电,内存缓存没了,恢复后可以本地文件缓存再拉取起来
更改配置后,会主动的推送配置,如果因为网络问题没有推送过去,他也会定期的去拉取
当然功能远不止这些,可以去携程的github上去看