canal+mysql+kafka实现数据实时同步

本文介绍了使用Canal实现MySQL到Kafka的数据实时同步过程。首先,详细讲解了Canal的工作原理,它模拟MySQL slave与master之间的交互。接着,展示了Canal的安装步骤,包括下载、解压、配置以及启动。然后,提到了MySQL的安装配置,特别是启用BinLog日志的设置。最后,简要提及了Zookeeper和Kafka的安装,为整个数据同步架构提供支持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

cannal简介,可见官网:https://github.com/alibaba/canal

 

canal 工作原理

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

1.cananl安装

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

这里只需要deployer模块,如图:

上传到liunx,我放在了/usr/local

创建一个文件夹,存放解压的canal:

mkdir canal

cd canal

解压到cannal文件夹中:tar -zxvf ../canal.deployer-1.1.4.tar.gz

然后修改配置文件:

①/conf/canal.properties

# tcp bind ip
canal.ip =127.0.0.1
# register ip to zookeeper
canal.register.ip =
canal.port = 11111
canal.metrics.pull.port = 11112

canal.admin.port = 11110
canal.admin.user = admin
canal.admin.passwd = 4ACFE3202A5FF5CF467898FC58AAB1D615029441

canal.zkServers =192.168.204.130:2181
# flush data to zk
canal.zookeeper.flush.period = 1000
canal.withoutNetty = false
# tcp, kafka, RocketMQ    用kafka
canal.serverMode = kafka
# flush meta cursor/parse position to file
canal.file.data.dir = ${canal.conf.dir}
canal.file.flush.period = 1000
## memory store RingBuffer size, should be Math.pow(2,n)
canal.instance.memory.buffer.size = 16384
## memory store RingBuffer used memory unit size , default 1kb
canal.instance.memory.buffer.memunit = 1024 
## meory store gets mode used MEMSIZE or ITEMSIZE
canal.instance.memory.batch.mode = MEMSIZE
canal.instance.memory.rawEntry = true

## detecing config
canal.in
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值