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

1.简单回顾

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

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

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

1.基本介绍和基础知识回顾

为了更好的理解这篇文章,建议先“仔细查看学习"官方文档的所有资料。快捷入口:canal官方资料

我们再简单回顾下canal以及canal-server相关的原理

1.1 canal的定位和功能

canal定位: 基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了mysql

典型的增量数据消费方式比如做分布式数据库的数据同步

1.2 canal-server的基本结构

canal采用netty实现了一个分布式的CS架构,client也被称作实例。在canal中有且仅有一个server,但是可以有多个cli......