概述
前言
canal是阿里开源的一款用于同步mysql数据到其他数据存储的中间件,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费
在搭建mysql服务器主从同步的时候,我们知道,备份服务器如果需要同步master的数据,其底层实现原理是salve监听master的bin_log日志文件,而canal的实现借用了这一思想,将自己的服务伪装成slave服务监听bin_log,从而将监听到的master服务器的数据同步到自己的消息管道,然后再输送给特定的其他数据存储服务器
借用官方的一张图,原理如下图所示,canal经过了多个版本的迭代,支持的同步数据中间件越来越多,比如es,hbase等,实际可以根据业务需求进行选择使用,可参阅官方wiki:https://github.com/alibaba/canal/wiki
工作原理
- canal 模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送 dump 协议
- MySQL master 收到 dump 请求,开始推送 binary log 给 slave (即 canal )
- canal 解析 binary log 对象(原始为 byte 流)
最后
以上就是悦耳树叶为你收集整理的canal实现mysql数据实时同步es的全部内容,希望文章能够帮你解决canal实现mysql数据实时同步es所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复