巧用 TiCDC Syncpiont 构建银行实时交易和准实时计算一体化架构
内容提要
本文介绍了商业银行如何利用TiCDC Syncpoint功能,在TiDB平台上构建一体化架构,优化零售资格业务系统,解决数据分布复杂性和跨库关联查询的挑战,提升数据处理效率和应用性能,确保实时交易的快速响应和数据分析处理的计算资源需求。
延伸解读
Syncpoint 如何解决数据一致性问题
TiCDC 采用分布式架构,标准同步模式仅保证最终一致性,无法确保主备集群事务提交顺序完全一致。Syncpoint 功能通过定期对齐上下游快照,在 tidb_cdc.syncpoint_v1 表中维护 ts-map,将动态数据一致性问题转化为静态快照校验,从而支持一致性快照读和数据校验。这使银行能在不中断同步的情况下,准确判断备集群数据是否已同步到指定时间点。
资格计算中的实际应用与优化
资格应用在实时集群完成业务后记录时间戳,然后在备集群查询 syncpoint_v1 中 max(primary_ts),若大于业务时间戳,则代表该业务已同步完成,可计算用户资格。为避免频繁查询影响性能,资格系统以一定间隔读取并缓存 primary_ts 供下游使用。同时,应用应避免大事务,因为 TiCDC 需等待源端提交后才在目标端执行,大事务可能导致同步延迟。
使用 Syncpoint 的注意事项
Syncpoint 一致性以 changefeed 为最小粒度,因此有事务关联性的所有表必须在同一个 changefeed 中同步。若涉及多个 changefeed 或多个 TiCDC 集群,查询 primary_ts 时需带上 changefeed 和 ticdc_cluster_id 字段以确保准确性。此外,syncpoint_v1 表按 sync-point-interval 定期刷新,获取的最新快照时间最大延时近似于 sync-point-interval 加上实际同步延迟,业务需根据此时效性要求合理配置参
Q&A
TiCDC Syncpoint 功能的主要作用是什么?
TiCDC Syncpoint 功能允许用户在特定时间点获取数据的一致性视图,以满足严格的数据一致性要求。
商业银行为何选择将应用迁移到 TiDB 平台?
商业银行迁移到 TiDB 平台是为了优化应用性能和数据处理效率,解决原有 MySQL 集群面临的数据分布复杂性和跨库关联查询的挑战。
如何启用 TiCDC 的 Syncpoint 功能?
在创建同步任务时,将 TiCDC 的配置项 enable-sync-point 设置为 true,即可启用 Syncpoint 功能。
Syncpoint 如何提升数据一致性校验效果?
Syncpoint 通过维护一致性快照,将动态数据一致性校验转化为静态数据一致性校验,从而提升实时校验效果。
使用 Syncpoint 时需要注意哪些事项?
使用 Syncpoint 时需确保多个表的同步和事务关联性在同一 changefeed 中进行,以保证数据一致性。
TiCDC Syncpoint 如何影响实时交易的响应速度?
TiCDC Syncpoint 通过将实时交易和准实时计算分配到不同的 TiDB 数据库集群,确保了实时交易的快速响应。