背景:
在营销域中,存在大量活动,每次活动的上线都必须有很多后台配置需要达到修改后实时生效的目的,这些配置有很多特性,比如交互单一,表单多,配置单一,可复用性强等。
虽然可以利用 apollo 来实现。但是这种方案的弊端很明显,首先在 apollo 中配置 json 数据虽然能达到快速上线的目的,但是不支持可视化,容易出现格式错误;活动规则配置字符很容易超过 apollo单 key 的最大字符上限;其次 apollo 的用户对象是研发同学,而非活动运营这样既不安全也不合规。
基于以上原因,亟待开发一套通用可视化配置系统,能支持业务多维度资源配置,实现通过定义表单描述语言或者拖拽组件即可实现新页面的创建。
活动配置中心系统具有以下优点:
- 定义了一套表单描述语法,整套界面支持可拖拽,操作便捷,支持多种数据结构,通用性强
- 支持配置数据数据同步,可以与业务方数据库表数据一一对应、实现了配置的读写分离
- 高性能 配置读取本地内存缓存,利用 Zookeeper 做实时更新,实时性强
- 高可用 sdk 支持配置持久化到本地文件快照,保证即使 server 不可用时业务端也能读取文件快照对外提供服务
主要分为后台配置模块和业务端实时配置读取两大块
后台部分:
流程一:RD 根据表单描述语言(DSL )将需要配置的内容生成表单描述信息(这里简称 Schema 集合),然后通过后端表单结构控制器后保存到数据库。
流程二:后端表单结构控制器通过读取 Schema 信息返回给前端,前端渲染成表单配置页面(运营使用)。
流程三:运营操作配置页面数据,可以进行 crud 操作,然后通过后端配置数据控制器持久化到数据库
业务端 sdk 获取实时配置数据:
非同步场景:
sdk与 zookeeper 保持长连接,ZK 主要用来将配置更新通知到 SDK ,运营修改配置后 push到 zk,zk