学习总结
-
引入配置中心原因
由于应用获取参数需要配置文件,而多节点应用本地配置文件修改会增加运维负担,增加配置中心概念,为特定应用提供动态配置文件和动态感知功能;
-
一般流程
-
应用第一次获取配置中心数据时,为了保证弱依赖配置中心,设有兜底数据保证程序正常执行;
-
如果配置中心运行且有数据,第一次访问时去拉取配置到本地,加载到内存中以便于使用,并持久化到本地文件;
-
为了保证自己本地内存数据最新的,需要fork一个定时任务,去配置中心拉取最新的配置文件,为了减少配置中心和应用的压力,一般会建立长连接;
-
如何判断配置文件的内容是最新的,会为已经拉取到本地的配置文件建立md5和最后的更新时间,拿着这个md5和最后的更新时间去配置中心比较;
-
如果配置文件比较大,那么拉取和传递参数将会有局限,这里会分片去校验;
-
为了得到及时的更新,光依赖fork的定时任务是有局限的,当配置中心的配置文件更新时及时的推送到需要更新的客户端,并且在客户端建立监听器实时更新内存和持久化的配置文件;
-
为了保证配置中心文件的高可用,配置中心支持持久化机制和集群;
-