每个模块的简单介绍如下:
Disconf-core
分布式通知模块:支持配置更新的实时化通知
路径管理模块:统一管理内部配置路径URL
Disconf-client
配置仓库容器模块:统一管理用户实例中本地配置文件和配置项的内存数据存储
配置reload模块:监控本地配置文件的变动,并自动reload到指定bean
扫描模块:支持扫描所有disconf注解的类和域
下载模块:restful风格的下载配置文件和配置项
watch模块:监控远程配置文件和配置项的变化
主备分配模块:主备竞争结束后,统一管理主备分配与主备监控控制
主备竞争模块:支持分布式环境下的主备竞争
Disconf-web
配置存储模块:管理所有配置的存储和读取
配置管理模块:支持配置的上传、下载、更新
通知模块:当配置更新后,实时通知使用这些配置的所有实例
配置自检监控模块:自动定时校验实例本地配置与中心配置是否一致
权限控制:web的简单权限控制
Disconf-tools
context共享模块:提供多实例间context的共享。
流程设计
运行流程详细介绍:
与2.0版本的主要区别是支持了:主备分配功能/主备切换事件。
启动事件A:以下按顺序发生。
A3:扫描静态注解类数据,并注入到配置仓库里。
A4+A2:根据仓库里的配置文件、配置项,去 disconf-web 平台里下载配置数据。这里会有主备竞争
A5:将下载得到的配置数据值注入到仓库里。
A6:根据仓库里的配置文件、配置项,去ZK上监控结点。
A7+A2:根据XML配置定义,到 disconf-web 平台里下载配置文件,放在仓库里,并监控ZK结点。这里会有主备竞争。
A8:A1-A6均是处理静态类数据。A7是处理动态类数据,包括:实例化配置的回调函数类;将配置的值注入到配置实体里。
更新配置事件B:以下按顺序发生。
B1:管理员在 Disconf-web 平台上更新配置。
B2:Disconf-web 平台发送配置更新消息给ZK指定的结点。
B3:ZK通知 Disconf-cient 模块。
B4:与A4一样。
B5:与A5一样。
B6:基本与A4一样,唯一的区别是,这里还会将配置的新值注入到配置实体里。
主备机切换事件C:以下按顺序发生。
C1:发生主机挂机事件。
C2:ZK通知所有被影响到的备机。
C4:与A2一样。
C5:与A4一样。
C6:与A5一样。
C7:与A6一样。