目标:写出专利
apollo:
disconf:
方面 | 淘宝Diamond[2] | Disconf | seagod | 比较 |
---|---|---|---|---|
数据持久性 | 存储在mysql上 | 存储在mysql上 | 存储在TiDB上 | 都持久化到数据库里,都易于管理 |
推拉模型 | 拉模型,每隔15s拉一次全量数据 | 基于Zookeeper的推模型,实时推送 | 实时推送? | disconf基于分布式的Zookeeper来实时推送,不断是在稳定性、实效性、易用性上均优于diamond |
配置读写 | 支持实例对配置读写。支持某台实例写配置数据,并广播到其它实例上 | 只支持实例对配置读。通过在disconf-web上更新配置到达到广播写到所有应用实例 | 只支持实例对配置读,通过web上更新配置从而广播写到所有应用实例 | 从目前的应用场景来看,实例对配置的写需求不是那么明显。disconf支持的中心化广播方案可能会与人性思考更加相似。 |
容灾 | 多级容灾模式,配置数据会dump在本地,避免中心服务挂机时无法使用 | 多级容灾模式,优先读取本地配置文件。 | 多级容灾模式,优先读取本地配置文件。 | 双方均支持在中心服务挂机时配置实例仍然可以使用 |
配置数据模型 | 只支持KV结构的数据,非配置文件模式 | 支持传统的配置文件模式(配置文件),亦支持KV结构数据(配置项) | 支持KV结构数据配置项,KV项更加简单易懂 | 使用配置文件的编程方式可能与程序员的编程习惯更为相似,更易于接受和使用。 |
编程模型 | 需要将配置文件拆成多个配置项,没有明显的编程模型 | 在使用配置文件的基础上,提供了注解式和基于XML的两种编程模型 | ? | 无 |
并发性 | 多条配置要同时生效时,无法解决并发同时生效的问题 | 基于注解式的配置,可以解决并发性问题 | 多条配置同时生效 | 无 |
—————————————————————— | 淘宝Diamond[2] | Disconf | seagod |
---|---|---|---|
数据持久性 | 存储在mysql上 | 存储在mysql上 | 存储在TiDB上 |
推拉模型 | 拉模型,每隔15s拉一次全量数据 | 基于Zookeeper的推模型,实时推送 | 拉模型,用户自定义拉取配置策略 |
配置读写 | 支持实例对配置读写。支持某台实例写配置数据,并广播到其它实例上 | 只支持实例对配置读。通过在disconf-web上更新配置到达到广播写到所有应用实例 | 只支持实例对配置读,通过web上更新配置 |
容灾 | 多级容灾模式,配置数据会dump在本地,避免中心服务挂机时无法使用 | 多级容灾模式,优先读取本地配置文件。 | 多级容灾模式,优先读取本地配置文件。? |
配置数据模型 | 只支持KV结构的数据,非配置文件模式 | 支持传统的配置文件模式(配置文件),亦支持KV结构数据(配置项) | 支持KV结构数据配置项,KV项更加简单易懂 |
编程模型 | 需要将配置文件拆成多个配置项,没有明显的编程模型 | 在使用配置文件的基础上,提供了注解式和基于XML的两种编程模型 | ? |
并发性 | 多条配置要同时生效时,无法解决并发同时生效的问题 | 基于注解式的配置,可以解决并发性问题 | 多条配置同时生效 |
字典 | |||
配置项数据源 | |||
维度 | |||
定时 |
特点:字典、数据源、维度、定时、分布式锁(?不算解决重大问题)