前言
对canal有所了解的同学应该知道,canal是阿里开源的一款mysql数据库同步的工具,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费
github地址:https://github.com/alibaba/canal
什么是 Canal
阿里巴巴 B2B 公司,因业务的特性,卖家主要集中在国内,买家主要集中在国外,所
以衍生出了同步杭州和美国异地机房的需求,从 2010 年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅&消费的业务
Canal 是用 Java 开发的基于数据库增量日志解析,提供增量数据订阅&消费的中间件。
目前。Canal 主要支持了 MySQL 的 Binlog 解析,解析完成后才利用 Canal Client 来处理获得的相关数据。(数据库同步需要阿里的 Otter 中间件,基于 Canal)
除了关系型数据库同步,canal目前为止支持的消息中间件很全面了,比如Kafka、RocketMQ,RabbitMQ