DM 数据旅程 00:序言
背景
在此之前已经有官方很多关于 DM 的优秀文章了,比如
这些文章从原理方面非常详尽地介绍了 DM 的相关功能,是非常好的学习资料。但是
- 它讲述的内容跨度较大,对读者有一定的门槛,DM 源码阅读系列文章(一)序:背景知识
- 编辑时间太过久远,已经过去两年多了。DM 新增了一些新特性,对很多旧功能也进行了更新优化。所以原文中有很多内容已经过时(但大部分仍有参考价值)。例如:DM 使用 Dumpling 替换了 MyDumper,新增乐观模式等等。
而外部的文章则大部分集中在 DM 的使用上而不是实现上。
基于此,我想开一个坑《DM 数据旅程系列》,每一篇文章将以一个个小功能为线索,带大家理解 DM 中的各种实现。如果要讲的功能太大,也会拆分成小模块放出。每一步都会尽量放出 GitHub 地址,方便大家跟踪学习~
数据旅程出自于龙少 PPT 中提到的用户旅程和数据旅程,指我们可以通过数据(字节)传输的途径。在看一段代码时,我们可以思考这个字节是从哪里来的,到哪里去,作用是什么,通过理解数据旅程来理解整个产品它的深层原理,并且可以通过改变数据规模(提升/降低数据数量级)和场景(不同的时间不同的位置)来理解产品的缺点(bug)。
以上都是个人拙见(废话),欢迎提意见~
当然,现在的 DM 正在飞速的发展迭代中,本系列的内容也可能马上就会过时,现在是 2021 年 10 月 31 日,本系列文章预计将会覆盖 DM v5.3.0-vx.x.x 的代码逻辑。
如果认为文章中有任何可以改进的地方, 欢迎大家提出自己的想法。同样地,因为 DM 还在快速迭代,还有很多地方都有改进的地方,如果大家对代码实现有任何疑问,也都可以去 repo 中直接提 issue。
读者要求
- 能看懂 Golang 语法
- 了解 grpc、etcd
- 计划章节
- Start task
- Stop task
- Pause task
- Resume task
- Full mode(dumpling)
- Incremental mode(syncer)
- Block-allow list
- Binlog-filter
- Enable relay log
- Permistic sharding ddl
- Optimistic sharding ddl
- 。。。
http://example.com/2023/01/03/DM-%E6%95%B0%E6%8D%AE%E6%97%85%E7%A8%8B-00%EF%BC%9A%E5%BA%8F%E8%A8%80/
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 okJiang!
评论