「从零单排canal 01」 canal 10分钟入门(基于1.1.4版本)

canal [kə\'næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据 订阅 和 消费。应该是阿里云DTS(Data Transfer Service)的开源版本。

2.提供的能力

Canal与DTS提供的功能基本相似:

1)基于Mysql的Slave协议实时dump binlog流,解析为事件发送给订阅方。

2)单Canal instance,单DTS数据订阅通道均只支持订阅一个RDS,提供给一个消费者。

3)可以使用canal-client客户端进行消息消费。

4)也可以通过简单配置,也可以不需要自行使用canal-client消费,可以选择直接投递到kafka或者RocketMQ集群,用户只需要使用消息队列的consumer消费即可。

5)成功消费消息后需要进行Ack,以确保一致性,服务端则会维护客户端目前的消费位点。

3.工作原理

MySQL的主从复制分成三步:

master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events,可以通过show binlog events进行查看);

slave将master的binary log events拷贝到它的中继日志(relay log);

slave重做中继日志中的事件,将改变反映它自己的数据。

「从零单排canal 01」 canal 10分钟入门(基于1.1.4版本)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgyyyz.html