#### 使用 binlog + canal + kafka 同步数据更新事件到redis或es等
canal
alibaba/canal: Canal 是由阿里巴巴开源的分布式数据库同步系统,主要用于实现MySQL数据库的日志解析和实时增量数据订阅与消费,广泛应用于数据库变更消息的捕获、数据迁移、缓存更新等场景。
项目地址:https://gitcode.com/gh_mirrors/ca/canal
免费下载资源
·
部分内容摘自【基于Canal和Kafka实现MySQL的Binlog近实时同步 - 掘金】
大致流程
canal将binlog转到连接器kafka,接收方订阅topic消费后更新redis或es
canal工作原理
canal伪装成一台从实例,所以看MySQL
主备复制原理:
Master
实例,将数据变更写入二进制日志binary log。(
其中记录叫做二进制日志事件binary log events
,可以通过show binlog events
进行查看)Slave
实例,将master
的binary log events
拷贝到它的中继日志relay log。
Slave
实例,重放relay log
中的事件,将数据变更反映它到自身的数据。
canal
的工作原理就是模拟slave,如下:
Canal
模拟MySQL Slave
的交互协议,伪装自己为MySQL Slave
,向MySQL Master
发送dump
协议MySQL Master
收到dump
请求,开始推送binary log
给Slave
(即Canal
)Canal
解析binary log
对象(原始为byte
流),并且可以通过连接器发送到对应的消息队列等中间件中
GitHub 加速计划 / ca / canal
28.22 K
7.57 K
下载
alibaba/canal: Canal 是由阿里巴巴开源的分布式数据库同步系统,主要用于实现MySQL数据库的日志解析和实时增量数据订阅与消费,广泛应用于数据库变更消息的捕获、数据迁移、缓存更新等场景。
最近提交(Master分支:3 个月前 )
1e5b8a20 - 2 个月前
ff82fd65
2 个月前
更多推荐
已为社区贡献4条内容
所有评论(0)