Canal架构及工作流程

Canal是一个MySQL数据库增量日志抽取框架,它伪装成MySQL slave与数据库交互,解析binlog并分发。Canal Server包含多个instance,每个instance对应一个MySQL实例。EventParser解析binlog,EventSink负责数据过滤、加工和分发,eventStore可选内存、文件或Zookeeper存储。Canal client与server间采用C/S通信,客户端发起请求,服务端才拉取binlog。
摘要由CSDN通过智能技术生成

Canal架构

Caner Server

一个Caner Server就代表一个canal运行实例,其对应于一个jvm
一个Caner Server同时对应着n个instance
一个instance对应着一个Mysql实例

Instance组成

一个instance由 EventParser eventSink eventStore MetaManager 这几部分组成

eventParser

数据源接入,模拟slave协议和master进行交互,协议解析,对应的解析过程为:
1: Connection获取上一次解析成功的位置 (如果第一次启动,则获取初始指定的位置或者是当前数据库的binlog位点)
2: Connection建立链接,发送BINLOG_DUMP指令
3: Mysql开始推送Binaly Log
4: 接收到的Binaly Log的通过Binlog parser进行协议解析,补充一些特定信息
5: 传递给EventSink模块进行数据存储,是一个阻塞操作,直到存储成功
6: 存储成功后,定时记录Binaly Log位置

eventSink

Parser和Store链接器,进行数据过滤,加工,分发的工作
具体可分为:
数据过滤:支持通配符的过滤模式,表名、字段内容等
数据路由/分发:解决1:n (1个parser对应多个store的模式)
数据归并:解决n:1 (多个parser对应1个store)
数据加工:在进入store之前进行额外的处理,比如join

eventStore

1.Memory内存
2.本地file存储
3.持久化到zookeeper以保障数据集群共享</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值