binlog日志解析开源工具canal源码浅析(4):sink模块

1.sink模块介绍

1.1 基本结构功能

sink模块也是instance当中的一个重要构成部分。它是parser和store模块中间的一个组件,与parser和store的关系可以用下图表示:

主要功能是:

数据过滤:支持通配符的过滤模式,表名,字段内容等

数据路由/分发:解决1:n (1个parser对应多个stor......

binlog日志解析开源工具canal源码浅析(3):parser和protocol模块

1.Parser介绍

在binlog日志解析开源工具canal源码浅析(2):instance模块一文中我们介绍了instance模块的作用。在启动一个instance之后,为了能够去解析mysql的binlog日志,我们首先要启动的核心组件就是EventParser了。

1.1 EventParser的功能定位

为了更好的理解Parser的作用,我们首先需要回顾下EventParser的定位:

instance中的核心组件

sink的上级组件,主要完成一些协议包的解析、位点管理等

binlog日志解析开源工具canal源码浅析(2):instance模块

1.简单回顾

在binlog日志解析开源工具canal源码浅析(1):server模块一文中,我们主要学习了canal的server模块,关注点主要是如何实现一个canal-server来负责响应client端的请求。本节将继续本着自顶向下的分析方法来理解源码。

在server端是维护着多个instance来负责响应client的请求,也就是说本质上是通过各个instance来负责和client的交互的具体内容。一个instance和一个client交互的过程即为一个会话(类似的设计理念很多地方可以看到,例如oracle数据库响应用户的查询请求也是相同的原理)。instance与c......