canal实现mysql数据同步

前言

canal是实现mysql数据备份,异地灾备,异地数据同步等重要的中间件,在实际的业务场景中有着广泛的使用,本文基于小编所在项目中一个异地数据同步的场景为例,通过案例演示下利用canal实现mysql数据同步的过程

在这里插入图片描述

同步原理

在这里插入图片描述

如上图所示,为canal同步mysql数据的原理的简单示意图,归纳如下:

  1. canal 模拟mysql slave 的交互协议,伪装自己为mysql slave,向mysql master 发送dump 协议。
  2. mysql master 收到dump请求,开始推送binary log给canal (slave)
  3. canal解析binary log对象(原始为byte流)

如果亲手配置过mysql读写分离架构的同学,对canal做数据复制的原理很好理解了,简单来说,就是伪装成master的从节点,监听并解析binlog日志的元数据到目标数据库的数据表

环境准备

  • 一个开启了binlog日志的mysql服务,IP地址为: IP1
  • 另一个安装并启动了mysql服务器的机器,IP地址为 : IP2
  • canal安装包,包括:canal.adapter-1.1.4.tar.gz , canal.deployer-1.1.4.tar.gz

canal安装包下载地址:https://github.com/alibaba/canal/releases

在这里插入图片描述

实现步骤

实现本文需求的话,主要是基于下载的两个安装包的配置,其实对canal有所了解的同学对其实现原理并不陌生,就是两个springboot的服务,对于开发者来说,只需要按照官方wiki提供的同步实现,做各种配置即可

在上一篇

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值