1. 异常考虑

使用Disconf-client和Disconf-Web,如果进行一些非预期操作,可能会影响到配置服务的正常运行,下面归纳了 目前配置系统的异常处理策略:

disconf-web事件定义:

A1: 未启动disconf-web
A2: 启动Disconf-web后,未上传一个配置文件叫redis.properties
A3: 在Disconf-Web上更新分布式配置文件

disconf-client事件定义:

B1: 启动包含了Disconf-client的实例
B2: 启动包含了Disconf-client的实例,它需要一个redis.properties作为分布式配置
B3: 有一个包含了Disconf-client的实例使用此分布式配置文件redis.properties

以下为详细表格

操作前提 操作时间点 操作行为 配置系统的处理 影响 用户建议
A1 B1 B1 此实例无法使用所有分布式配置 此实例使用本地(classpath目录下)的配置 启动disconf-web, 然后再重新实例
A2 B1 B2 此实例无法使用此分布式配置redis.properties 此实例使用本地的配置redis.properties 先上传redis.properties, 然后重新启动实例
A2 & B3 A3 误操作,上传了一个空的配置文件redis.properties 此实例无法正常更新配置文件redis.properties 1. 此实例没有更新配置,仍沿用以前的配置
2. 实例日志打印ERROR错误
3. 监控系统报警(由于ZK上的配置数据与DB出现不同步,因此有报警)
重新上传redis.properties
A2 & B3 A3 误操作,上传了一个别人的配置文件remote.properties disconf-web拒绝了此次更新请求 上传失败 重新上传redis.properties