引言
从 TiDB v6.5 开始,TiCDC 就代替了 Binlog 成为了首选的 TiDB 往下游系统的增量同步工具。通过拉取上游 TiKV 的数据变更日志,TiCDC 可以将数据解析为有序的行级变更数据输出到下游。一直以来,TiCDC 作为 TiDB 生态系统中不可或缺的增量数据同步工具,在数据库灾备、数据集成、流处理与实时分析、业务连续性保障、多写多活等场景都扮演着重要的角色。为了给大家带来更好的产品体验,研发团队在提升 TiCDC 性能、稳定性、扩展性方面不断发力,为 TiCDC 设计了全新的架构✨。新架构 TiCDC 预计将在近期的新版本发布。2025 年 2 月 13 日 - 3 月 14 日,TiDB 社区将和大家一起,开启一场 TiCDC 新架构试用之旅!
🎉 无论你是正在使用 TiCDC,希望评估新架构 TiCDC 的提升是否可以解决当前痛点,助力突破业务瓶颈;还是对 TiCDC 产生兴趣,想要探索最新的发展动态的小伙伴,都能在本次 TiCDC 新架构试用活动中收获满满,充分参与 TiCDC 的技术升级进程!
🚀 在试用活动过程中,你将收获满满:
- 熟悉 TiCDC 新老架构的原理和使用方法,提升个人技术水平
- 参与 TiCDC 新架构的测试和反馈,直接影响 TiCDC 未来的优化方向,成为 TiDB 产品发展的参与者和推动者😎
- 获取丰厚奖励、周边礼品、社区荣誉称号等,在伴随 TiCDC 发展的道路上,收获满满的成就感和荣誉感
活动参与奖励
-
活动报名奖励:点击[此处]报名活动即可获得 TiCDC 新架构试用活动参与者电子纪念徽章 + 100 积分 & 经验值奖励(可在兑换中心兑换你喜欢的 TiDB 周边 & 课程等)
-
参与反馈奖励:参与 TiCDC 新架构试用,点击此处进行新架构使用体验、优化建议、Bug 反馈,奖励 200 积分 & 经验值
-
优质反馈奖励:若反馈的 Bug 被成功复现 & 定位,将授予 TiCDC 新架构试用达人电子纪念徽章,根据反馈情况,额外奖励 100-500 积分 & 经验值不等,同时抽 5 位优质反馈的小伙伴送 TiDB 社区 2025 年新款双肩背包一个
-
输出文章奖励:在 TiDB 社区专栏发布 TiCDC 新架构试用体验、最佳实践的优质文章,如在新架构 TiCDC 上业务有什么变化等, 每篇文章成功发布将奖励 100-600 积分,并额外奖励 300 积分 & 经验值/篇 + TiDB 定制秋冬款冲锋衣一件
参考文章:
- 专栏 - TiDB:主从同步从 Binlog 切换至 Ticdc 带来性能飞跃! | TiDB 社区
- 专栏 - TiCDC 实践:TiDB 集群合并 | TiDB 社区
- 专栏 - 基于 TiCDC 创建灾备和容灾切换 | TiDB 社区
- 专栏 - 10倍提升-TiCDC性能调优实践 | TiDB 社区
- 特别荣誉奖项:
-
优质 Bug 反馈数 Top 3:我们将为你颁发“TiCDC 杰出贡献奖”,并可获得 TiDB 定制秋冬款冲锋衣 + TiDB 社区定制咖啡杯 + 纪念证书
-
优质文章 Top 3(由 TiCDC 团队评选):我们将为你颁发“TiCDC 最佳布道奖”,并可获得 Ti 工业风机械键盘 + 纪念证书
-
新架构 最佳实践 Top 3(由 TiCDC 团队评选):我们将为你颁发“TiCDC 最佳实践奖”,并可获得 Ti 红露营装备五件套 + 纪念证书
-
参选条件:通过构造场景,充分挖掘 TiCDC 的最强性能,并发布最佳实践文章。例如:
- 极致的资源利用:在极低的资源条件下(如有限的 CPU 和内存),实现高吞吐量的高效运行。
- 大规模集群扩展:通过集群扩展,实现超高的吞吐量,突破性能瓶颈。
- 超大规模集群稳定性:将 TiCDC 集群扩展到超多节点,确保系统在大规模环境下仍能稳定运行。
-
TiCDC 的新架构对比老架构有什么优势?
新架构 TiCDC 没有功能上的变化,但是它在性能、稳定性和扩展性等方面将会有显著提升。
以下是测试结果和优势总结:
-
显著提升了单节点处理性能
- 一个 CDC 节点最高可以支持 50万张表(0.5M)
- 一个 CDC 节点最多可以同步 200MiB/s 流量(宽表场景)
-
提供了超强的扩展能力
- 预计可以扩展到 100 个节点以上
- 支持超过 1 万个changefeed
- 一个 changefeed 可以放几百万张表
-
更高的稳定性
- 在高流量下更稳定的延迟 Lag
- 扩容、缩容,添加、删除等操作对其他 changefeed 的影响更小4.更省成本,用更少的资源跑同样的流量
-
CPU、内存效率在典型场景有最多一个数量级的提升
关于新架构 TiCDC 的更详细的介绍可以看这篇文章⬇️
专栏 - 新架构 TiCDC 简介 | TiDB 社区
试用 TiCDC 新架构需要什么条件?
试用 TiCDC 新架构需要安装的 TiDB 集群为 v7.5.0 及以上版本
活动时间 & 活动安排
-
活动报名 & 测试体验时间:2025 年 2 月 13 日 - 3 月 14 日
-
提交反馈 & 撰写文章截止时间:2025 年 2 月 13 日 - 3 月 18 日
-
活动奖励评选发放时间:2025 年 3 月 19 - 21 日
如何体验 TiCDC 新架构?
认识 TiCDC:基于 TiUP Playground 的快速体验流程
如果你想从零开始体验 TiCDC,并且没有现成的 TiDB 集群环境,可以参考下面这个流程,只需要 copy & paste 下面的命令就能完成所有体验!
- 启动上游 TiDB 集群
TICDC_NEWARCH=true tiup playground nightly --ticdc 1 --tiflash 0
- 启动下游 TiDB 集群
tiup playground nightly --tiflash 0 --db.port 4050
- 创建 changefeed 同步任务
# 创建 id 为 demo 的 changefeed,将上游集群所有包含主键或者非空唯一索引的表同步到下游 TiDB 集群
tiup cdc:nightly cli changefeed create --server=http://127.0.0.1:8300 --sink-uri="mysql://root@127.0.0.1:4050/" --changefeed-id="demo"
- 至此,新架构已经配置完成,可以在上游集群运行任意负载,比如运行 ycsb 负载
tiup bench ycsb load tidb -p tidb.instances="127.0.0.1:4000" -p recordcount=10000
- 连接下游集群,查看数据同步情况
mysql --host 127.0.0.1 --port 4050 -u root -e "select count(*) from test.usertable"
测试 TiCDC 新架构:基于 TiUP Cluster 的正式体验流程
如果你想在一个比较正式的环境体验新架构 TiCDC,可以参考下面的流程。
-
使用 TiUP 部署一个正式的 TiDB 集群,要求是 v7.5 或者以上版本 (如果你已经有一个 TiDB 集群,可以跳过这个步骤)
-
部署 TiCDC 节点
a. 如果你的集群没有 TiCDC 节点,使用 TiUP 在上面的 TiDB 集群中扩容出多个 TiCDC 节点,比如tiup cluster scale-out <cluster-name> ./scale-out-cdc.yaml
b. 如果你的集群已经存在 TiCDC 节点,这个时候只需要 pause 掉所有的 changefeed 即可
3.下载最新的 TiCDC 版本的 binary,你可以通过以下两种方式获取下载链接:
a.手动构建
i.访问 pingcap/ticdc/tags 页面,找到最新的 tag,比如 v9.0.0-beta.1.pre
。
ii.下载链接的格式为:https://tiup-mirrors.pingcap.com/cdc-${tag}-nightly-${os}-${arch}.tar.gz
其中:(1) ${tag} 是上一步获取的最新 tag。(2)${os} 表示操作系统,比如 linux
、darwin
(MacOS)等。(3) ${arch} 表示硬件架构,比如 amd64
(x86-64)、arm64
等。
iii. 示例链接:(1)Linux x86-64:https://tiup-mirrors.pingcap.com/cdc-v9.0.0-beta.1.pre-nightly-linux-amd64.tar.gz
(2)Linux ARM64: https://tiup-mirrors.pingcap.com/cdc-v9.0.0-beta.1.pre-nightly-linux-arm64.tar.gz
(3)MacOS x86-64: https://tiup-mirrors.pingcap.com/cdc-v9.0.0-beta.1.pre-nightly-darwin-amd64.tar.gz
(4)MacOS ARM64: https://tiup-mirrors.pingcap.com/cdc-v9.0.0-beta.1.pre-nightly-darwin-arm64.tar.gz
b.通过 TiUP 命令获取i.执行 tiup install cdc:nightly --force
可以获取当前平台的 TiCDC binary 下载链接
4. 将下载的 TiCDC binary patch 到集群中
tiup cluster patch <cluster-name> <path-to-download-file> -R cdc --overwrite
- 修改 TiCDC 配置,启用新架构
tiup cluster edit-config <cluster-name>
#vim
#cdc_servers:
# ...
# config:
# newarch: true
-
目前 TiUP 已经将 TiCDC 新架构监控面板集成到 Grafana 页面中,其名称为 -TiCDC-New-Arch,可以通过该面板查看新架构相关监控指标。
-
至此,你已经完成了新架构的所有配置,可以开始体验了!
a.你可以按照 TiCDC 的官方文档来创建一些 changefeed
b. 或者如果原来已经有一些已经存在的 changefeed,这时候可以 resume 它们继续执行同步任务。
测试方向参考
测试新架构 TiCDC,可以考虑从这个几个角度入手:
- 模拟你的正常业务操作,如果遇到任何 bug,请反馈到这里 ticdc/issues,我们会尽快修复
- 观测延迟 lag 是否比之前更稳定,特别是在业务高峰期
- 观测资源使用率(CPU、内存)是否显著下降
- 测试扩容、缩容 TiCDC 集群,或者对 changefeed 进行创建、删除、pause、resume 等操作,观察 changefeed 的 lag 有什么影响,过程中流量是否平稳,是否存在不均衡的状况等
- 如果你之前由于表太多、DDL 太频繁或者流量太大等原因导致需要拆分 changefeed 甚至集群才能完成,可以尝试在新架构 CDC 中只用一个集群或者少数 changefeed 是否能正常同步
- 针对你的业务,看看 CDC 还有哪些地方可以改进的
- 其他测试方向
注意:TiCDC 的新架构尚未完全涵盖旧架构的全部功能,这些功能将在后续的正式发布(GA)版本中完整实现,具体包括:
2 月 26 日晚!TiCDC 新架构介绍分享会敬请期待!
-
活动时间:2025 年 2 月 26 日(周三) 19:00-20:00
-
分享嘉宾:TiCDC 研发负责人 韦万
-
分享主题:全面了解 TiCDC 新架构带来了哪些优化?
-
活动议程:
- 19:00-19:45 主题分享
- 19:45-20:00 Q&A
-
活动报名 & 进活动群:PingCAP Account
扫码预约直播
期待大家的参与!让我们一起开启 TiCDC 新征程,点亮更好的 TiDB 产品体验!🌟