canal 整合RabbitMQ


環境如下:

canal: 1.15-alpha-1

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.60
canal.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

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM