「从零单排canal 07」 parser模块源码解析
基于1.1.5-alpha版本,具体源码笔记可以参考我的github:https://github.com/saigu/JavaKnowledgeGraph/tree/master/code_reading/canal 本文将对canal的binlog订阅模块parser进行分析。 parser模块(绿色部分)在整个系统中的角色如下图所示,用来订阅binlog事件,然后通过sink投递到store。 parser模块应该来说是整个项目里面比较复杂的模块,代码非常多。 因此,本文根据过程中的主线来进行展开分析,从 启动 开始,进行分析。 如果读者有其他相关内容不明白的,可以给我留言,我会进行解答或者根据情况再单独写相关内容。 模块内的类如下: 重点需要关注几个核心问题 如何抓取binlog 对binlog消息处理做了怎样的性能优化 如何控制位点信息 如何兼容阿里云RDS的高可用模式下的主备切换问题 1.从启动进入parser主流程 前面的文章我们已经提到了,instance启动的是,会按照顺序启动instance的各个模块 parser模块就是在这里开始的。 这里需要注意一下,在befo...












