数据同步简要设计文档
- 通过Flink CDC将数据变更日志写入到Kafka消息队列中
- Kafka根据过期时间清理日志,不建议通过日志大小进行清理,也可配合消费分组的Lag手动进行清理
- 将数据变更持久化到HBase中,以Kafka的Offset作为Rowkey,并设置TTL过期时间
- 将数据变更时间点和偏移记录到配置中心并更新缓存
- 根据授权策略,发送消息通知,将变更摘要下发给客户端
- 配置中心维护客户端的数据访问范围权限
- 记录服务端数据变更的时间点和日志偏移
- 记录客户端最后同步的时间点和日志偏移
- 记录异常情况并预警,如客户度长时间不同步或变更日志过期丢失
- 客户端接受变更通知或启动定时任务,通过接口批量拉取变更日志
- 服务端根据授权范围返回可同步的数据记录并记录待确认的状态
- 客户端将数据记录清洗到目标系统中并发送ACK确认
- 服务端记录客户端的同步时间点和日志偏移
- 当目标系统首次上线或同步异常时需要进行初始化
- 初始化程序批量读取原始数据按策略同步至目标系统
- 不建议由客户端发起全量同步操作,通过拷贝数据副本的方式更佳
- 建议将同步数据与目标系统的业务数据进行分离存储
- 索引数据必须可通过其他持久化存储进行重建