30分钟快速掌握Canal整合RabbitMQ(极简配置)

前言

快速使用canal

一、canal原理

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

二、mysql开启binlog(mysql版本:5.7)

修改配置文件

windows C:\ProgramData\MySQL\MySQL Server 5.7\my.ini
linux /etc/my.cnf

# 开启 binlog
log-bin=mysql-bin
# 日志格式 
binlog_format=row 
# 指定数据库,若不指定,则所有数据库 binlog 都生效
# binlog-do-db=dbname 

重启 mysql

略。

查看是否已开启 binlog

mysql> show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin       | ON    |
+---------------+-------+

授权

mysql> grant all privileges on *.* to '用户名'@'ip' identified by '密码';
mysql> flush privileges;

三、安装服务端canal.deployer(canal版本:1.1.5,linux:CentOS7)

下载发行版

canal.deployer-1.1.5.tar.gz

解压

 tar zxvf canal.deployer-1.1.5.tar.gz

端口

firewall-cmd --zone=public --add-port=11110/tcp --permanent        
firewall-cmd --zone=public --add-port=11111/tcp --permanent 
firewall-cmd --zone=public --add-port=11112/tcp --permanent 
firewall-cmd --reload

四、部署RabbitMQ服务端

Linux安装RabbitMQ

五、修改配置文件

根配置文件 conf/canal.properties

# 指定模式
canal.serverMode = rabbitMQ
# 指定实例,多个实例使用逗号分隔: canal.destinations = example1,example2
canal.destinations = example 

# rabbitmq 服务端 ip
rabbitmq.host = 127.0.0.1
# rabbitmq 虚拟主机 
rabbitmq.virtual.host = / 
# rabbitmq 交换机  
rabbitmq.exchange = xxx
# rabbitmq 用户名
rabbitmq.username = xxx
# rabbitmq 密码
rabbitmq.password = xxx
rabbitmq.deliveryMode =

实例配置文件 conf/example/instance.properties

配置 slaveId,自定义,不等于 mysql 的 server Id 即可
canal.instance.mysql.slaveId=10 

# 数据库地址 
canal.instance.master.address=ip:port 
 
# 数据库用户名和密码 
canal.instance.dbUsername=xxx 
canal.instance.dbPassword=xxx
	
# 指定库和表
canal.instance.filter.regex=.*\\..* // 这里的 .* 表示 canal.instance.master.address 下面的所有数据库
		
# mq config
# rabbitmq 的 routing key
canal.mq.topic=xxx

六、启动canal

sh bin/startup.sh	

七、处理消息

当数据变更时,canal会向rabbitmq发送变更数据,消息为json格式。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值