lc训练


目标:写出专利

apollo:

https://github.com/ctripcorp/apollo/wiki/Apollo%E9%85%8D%E7%BD%AE%E4%B8%AD%E5%BF%83%E8%AE%BE%E8%AE%A1

disconf:

https://github.com/knightliao/disconf/blob/master/docs/source/design/src/disconf-web%E8%AF%A6%E7%BB%86%E8%AE%BE%E8%AE%A1%E6%96%87%E6%A1%A3.rst

方面 淘宝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的两种编程模型
并发性 多条配置要同时生效时,无法解决并发同时生效的问题 基于注解式的配置,可以解决并发性问题 多条配置同时生效
字典      
配置项数据源      
维度      
定时      

特点:字典、数据源、维度、定时、分布式锁(?不算解决重大问题)

image-20210623122458042