canal是阿里的开源框架,其优势在于可以方便地同步数据库中增量数据到其他的存储应用(MySQL、Kafka、Elastic Search、HBase、Redis等等)。
主要用途是基于MySQL数据库增量日志解析,提供增量数据订阅和消费。
工作原理:
canal相当于MySQL的slave,模拟MySQL slave的交互协议向MySQL Master发送dump协议,MySQL Master收到canal发送过来的的dump请求,开始推送binary log给canal,然后canal解析binary log,再发送到存储目的地。
canal数据同步有什么作用:
canal的数据同步不是全量的,而是增量的。基于binary log增量订阅和消费,canal可以做:
-数据库镜像
-数据库实时备份
-索引构建和实时维护
-业务cache(缓存)刷新
-带业务逻辑的增量数据处理
实例1:使用Kafka实现Redis与MySQL的数据同步(架构图)
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。