Canal(Mysql)数据同步工具使用

Canal 是阿里巴巴的一款数据库增量同步中间件,基于 MySQL 的 Binlog 解析,用于实现数据库的增量订阅和消费。本文介绍了Canal的工作原理,包括Mysql主从复制过程,以及如何部署和配置Canal,提供了简单的客户端连接示例。
摘要由CSDN通过智能技术生成

1. Canal介绍

阿里巴巴 B2B 公司,因为业务的特性,卖家主要集中在国内,买家主要集中在国外,所以衍生出了同步杭州和美国异地机房的需求,从 2010 年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅&消费的业务。Canal 是用 Java 开发的基于数据库增量日志解析,提供增量数据订阅&消费的中间件。目前。Canal 主要支持了 MySQL 的 Binlog 解析,解析完成后才利用 Canal Client 来处理获得的相关数据。(数据库同步需要阿里的 Otter 中间件,基于 Canal)

2.Canal工作原理

2.1 Mysql主从复制原理

1)Master 主库将改变记录,写到二进制日志(Binary Log)中;
2)Slave 从库向 MySQL Master 发送 dump 协议,将 Master 主库的 binary log events 拷贝
到它的中继日志(relay log);
3)Slave 从库读取并重做中继日志中的事件,将改变的数据同步到自己的数据库。
在这里插入图片描述

2.2 Mysql bin-log开启

详情见Maxwell简单使用2.2.1章节

3 Canal使用

3.1 Canal部署

Canal需要部署到linux服务器上

  1. 上传canal.deployer-1.1.2.tar.gz包到服务器的/opt/software
  2. 解压 tar -zxvf canal.deployer-1.1.2.tar.gz -C ./canal/ 目录下
  3. 配置canal.propertiesinstance.properties文件中内容
    cancal.properties
    在这里插入图片描述

instance.properties
在这里插入图片描述
4. 启动canal ./bin/startup.sh

3.2客户端连接Canal

  1. 创建一个java的maven工程
  2. pom.xml中添加如下配置
		<dependency>
			<groupId>com.alibaba.otter</groupId>
			<artifactId>canal.client</artifactId>
			<version>1.1.2</version>
		</dependency>
  1. 创建一个CanalClient.java文件
  2. 内容如下
  
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值