rabbitmq使用整合mysql_canal 整合RabbitMQ

环境如下:

mysql  5.6.49

rabbitmq 3.7.14

Erlang 21.3

canal 安装和启动 见上篇文章 canal快速安装启动

但是这个拿到的数据,不知道怎么处理 看看如果丢到mq,我从mq取到的数据格式

{

"data":[

{

"id":"23",

"name":"sdfs",

"age":"10",

"sex":"1",

"created_at":"2010-09-09 11:11:11",

"updated_at":"2020-08-14 23:57:34"

}

],

"database":"test",

"es":1597420654000,

"id":1,

"isDdl":false,

"mysqlType":{

"id":"int(11)",

"name":"varchar(255)",

"age":"int(11)",

"sex":"int(255)",

"created_at":"timestamp",

"updated_at":"timestamp"

},

"old":[

{

"name":"er",

"updated_at":"2020-07-25 09:27:35"

}

],

"pkNames":[

"id"

],

"sql":"",

"sqlType":{

"id":4,

"name":12,

"age":4,

"sex":4,

"created_at":93,

"updated_at":93

},

"table":"user",

"ts":1597422036430,

"type":"UPDATE"

}

这个就很好用了,直接拿data字段进行更新就行了

type 会有  UPDATE  DELETE INSERT

canal 官方文档 说是队列只支持 kafka 和 rocketmq

但是现在的版本已经支持 rabbitmq了

vim conf/canal.properties

canal.mq.servers = 192.168.33.60canal.mq.vhost=/canal.mq.exchange=exchange_user_sync

canal.mq.username=admin

canal.mq.password=admin

canal.serverMode= rabbitmq

vim conf/example/instance.properties

canal.instance.master.address=192.168.33.60:3306 改为我的数据库ip

# username/password 默认就是这样的,按照官方的例子授权 都可以不用改了,如果自己授权其他用户改动

canal.instance.dbUsername=canal

canal.instance.dbPassword=canal

canal.instance.connectionCharset = UTF-8

# enable druid Decrypt database password

canal.instance.enableDruid=false

canal.mq.topic=example mq路由 到时候 交换机和队列绑定要设置route为 example

903107abb7444e039152627a9ad1827e.png

原文:https://www.cnblogs.com/brady-wang/p/13507210.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值