美文网首页
canal 整合RabbitMQ

canal 整合RabbitMQ

作者: 瞿大官人 | 来源:发表于2020-01-15 21:36 被阅读0次

写在前面

现在canal自身已经整合了RabbitMQ,所以开发人员只需要配置就可以实现将消息发送到RabbitMQ。不过这里还有简单的小问题需要大家注意。

canal.mq.servers 指定rabbitmq 地址不能加端口
如下所示:
canal.mq.servers = 192.168.5.4:5762 错误
canal.mq.servers = 192.168.5.4 正确

一、 环境准备

canal-1.15-alpha-1
rabbitmq-3.6.15
mysql-5.7.17

设置mysql

mysql 开启binlog
[mysqld]
log-bin=mysql-bin # 开启 binlog
binlog-format=ROW # 选择 ROW 模式
server_id=1 # 配置 MySQL replaction 需要定义,不要和 canal 的 slaveId 重复
授权canal 连接mysql

授权 canal 链接 MySQL 账号具有作为 MySQL slave 的权限, 如果已有账户可直接 grant。

CREATE USER canal IDENTIFIED BY 'canal';  
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
-- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ;
FLUSH PRIVILEGES;

二、 安装canal.server

  1. 下载canal.deployer
wget https://github.com/alibaba/canal/releases/download/canal-1.1.5-alpha-1/canal.deployer-1.1.5-SNAPSHOT.tar.gz
  1. canal.deployer解压到指定文件夹
mkdir canal

tar -zxvf canal.deployer-1.1.1.tar.gz -C canal 
  1. 查看解压缩文件


    image.png

三、修改canal 配置文件

bin/canal.properties

.....
# 指定rabbitmq
canal.serverMode = rabbitmq
...
# rabbitmq 设置
canal.mq.servers = 192.168.5.4 ## 注意不要加端口号,不然会报IPV6错误。
canal.mq.vhost=/
canal.mq.exchange=exchange.trade.order
canal.mq.username=admin
canal.mq.password=admin

bin/example/instance.properties

canal.instance.mysql.slaveId=9999
...
# position info
canal.instance.master.address=192.168.3.157:3306 ## 数据库地址
# enable druid Decrypt database password
canal.instance.defaultDatabaseName=file ## 数据库名


canal.mq.topic=example # 路由键
...

四、启动

启动canal

进入bin,启动canal

./startup.sh

查看启动日志

cat logs/canal/canal.log
cat logs/example/examle.log

五、新建队列

image.png

六、更新数据

update tb_account set email = 'b' where id = 3;

七、查看结果

image.png
image.png

相关文章

网友评论

      本文标题:canal 整合RabbitMQ

      本文链接:https://www.haomeiwen.com/subject/bvhxzctx.html