巧用 TiCDC Syncpiont 构建银行实时交易和准实时计算一体化架构

💡 原文中文,约5600字,阅读约需14分钟。
📝

内容提要

本文介绍了商业银行如何利用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 数据库集群,确保了实时交易的快速响应。

🏷️

标签

➡️

继续阅读