Canal
定位:基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了mysql。
原理:
-
canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议
-
mysql master收到dump请求,开始推送binary log给slave(也就是canal)
-
canal解析binary log对象(原始为byte流)
整个parser过程大致可分为几步:
-
Connection获取上一次解析成功的位置(如果第一次启动,则获取初始制定的位置或者是当前数据库的binlog位点)
-
Connection建立连接,发生BINLOG_DUMP命令
-
Mysql开始推送Binary Log
-
接