10节课写个Binlog Server

10节课写个Binlog Server

10讲 · 22 人学习

限时优惠:¥69.00 99.00 立省 30 元

Kyrie

就职于某一线大厂,Golang项目经验丰富,致力于分布式,中间件,k8s等技术研究,不能带你飞就带你浪

课程大纲

01.楔子

02.架构设计

03.存储方案

04.Syncer

05.复制原理实现(一): Event

06.复制原理实现(二): Cmd

07.Dumper

08.复制原理实现(三): Mysql连接协议

09.复制原理实现(四): Mysql复制协议

10.交付

适宜人群

后端工程师,对go语言和中间件开发有兴趣的同学

课程说明

在我过去工作中,遇到过大大小小的线上故障,有的是机器的资源问题,有的是代码问题,大部分处理都情有可原。但还有一类线上故障,造成的影响非常大,那就是mysql的主从同步延迟问题,而让我惊讶的是,针对这个问题的处理,很多人的思考都集中在业务那一层,比如将数据读取从从库切换到主库,或者优化sql,提高mysql的性能等等。好像都忽略了这个问题的本质在数据库那一层,在主从数据同步那里。

这个项目课用10节课讲一个Binlog Server,是数据库主从同步延迟问题非常有效的解决方案。10节课里面不会着重于每一个变量的定义和每一个方法的实现,侧重于mysql复制原理的知识点讲解和具体实现。同时,这是一门中间件课程,用的是Golang语言,对于习惯了Web编程和非Golang开发同学来说,也是一个还算可以的学习项目。

购买须知:
1、本课程为虚拟产品,一经购买,概不退款(讲师特别声明除外)
2、课程购买成功,可通过网站、APP、小程序端观看
3、在使用过程中,遇到任何问题,请邮件联系:pr@sifou.com

版权声明:讲者在本产品上发表的全部原创内容(包括但不限于文字、视频、图片等)著作权均归讲师本人所有。未经讲师授权许可,观众用户不得以任何载体或形式使用讲师的内容。

5.010条评价

小九 · 9月14日

老师,我也有几个问题:
1.我看了老师说的那3个sql解析器,看得有点吃力,卡在那里了,有什么办法能快速理解
2.我发现老师说的架构对实时性要求有点高,如果我的项目对实时性要求不高,有没有其他方法?
3.然后,老师说的有赞nsq,我在GitHub上看不懂

Kyrie · 9月16日

1.sql解析其实需要点编译原理的基础,涉及到前端编译里面的词法解析,AST树生成,语法解析还有上下文等等,这里一两句讲不太清楚,可以先去了解下,过段时间我也写篇文章讲讲;

2.Binlog Server对实时性要求高不是更好吗😂...如果你的项目对实时性要求不高,那可以把binlog放到Kafka,等着消费也行

3.有赞的nsq看不懂的话,可以先看原本的nsq,用一下,再去看有赞的

明明明 · 9月13日

讲课有趣又专业,主要是课件很优惠,能学到很多,慢慢经营起口碑,厉害

Kyrie · 9月16日

感谢支持

ok啦 · 9月9日

大佬优秀,录制的比之前直播的好多了,舒服😂

Kyrie · 9月10日

舒服就好,感谢支持

牧羊小北 · 9月5日

努力看了几天,收获很大,现在终于知道gtid是咋回事了,有2个问题想问老师:
1.这个gtid_executed值怎么初始化的,课里提到有个gtid数据表,我把它清空了为什么有时候还有值?
2.好奇老师在公司自己搞这个binlog server吗,还是有个专门的中间件团队?小公司有必要搞吗?

Kyrie · 9月6日

同学很认真,👍👍
1.gtid_executed值的初始化,除了跟gtid数据表有关,还跟mysql-bin.index有关;首先从mysql-bin.index里面找到第一个previous_gtids_log_event的binlog,会读取这个binlog的gtid集合,然后再跟mysql.gtid_executed表记录求并集
简单来说,就是 (previous_gtids_log_event.gtid) U (mysql.gtid_executed) = gtid_executed变量值。

2.搞这个binlog server是应对业务复杂的情景,当你公司数据库耦合问题越来越严重,或者主从延迟变得频繁,每个开发都觉得无力的时候,就可以往这个方向考虑;如果不是呢,首先还是花时间在数据表设计上。

denzi · 8月20日

不错,学习学习

zh2302277 · 8月20日

给大佬跪舔了

zhaot · 8月19日

很棒 很有见解,持续学习中👏

ak520hl · 8月19日

讲的很好

Amusic · 8月19日

加个油,小伙子

ItIsMe · 8月19日

讲得太好了