溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Canal結(jié)合RocketMQ同步MySQL到Redis的方法步驟

發(fā)布時間:2021-09-06 09:47:02 來源:億速云 閱讀:348 作者:chen 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“Canal結(jié)合RocketMQ同步MySQLRedis的方法步驟”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Canal結(jié)合RocketMQ同步MySQL到Redis的方法步驟”吧!

一、 安裝Canal

Docker 安裝單機 Canal

二、 安裝RocketMQ

Docker安裝單機RocketMQ

三、配置Canal的MQ

官方文檔

3.1 修改 Canal Server配置

Canal結(jié)合RocketMQ同步MySQL到Redis的方法步驟

#################################################
######### 		common argument		#############
#################################################

# canal admin config
canal.admin.manager = 192.168.25.142:8089
canal.admin.port = 11110
canal.admin.user = admin
canal.admin.passwd = 4ACFE3202A5FF5CF467898FC58AAB1D615029441

canal.serverMode = RocketMQ

##################################################
######### 		     MQ 		     #############
##################################################
canal.mq.servers = 192.168.25.142:9876
canal.mq.retries = 0
canal.mq.batchSize = 16384
canal.mq.maxRequestSize = 1048576
canal.mq.lingerMs = 100
canal.mq.bufferMemory = 33554432
canal.mq.canalBatchSize = 50
canal.mq.canalGetTimeout = 100
canal.mq.flatMessage = true
canal.mq.compressionType = none
canal.mq.acks = all
#canal.mq.properties. =
canal.mq.producerGroup = test
# Set this value to "cloud", if you want open message trace feature in aliyun.
canal.mq.accessChannel = local
# aliyun mq namespace
#canal.mq.namespace =

##################################################
#########     Kafka Kerberos Info    #############
##################################################
canal.mq.kafka.kerberos.enable = false
canal.mq.kafka.kerberos.krb5FilePath = "../conf/kerberos/krb5.conf"
canal.mq.kafka.kerberos.jaasFilePath = "../conf/kerberos/jaas.conf"

修改好后,點擊保存

3.2 核對instance配置

intance.properties不需要修改,此處列出配置,方便大家避坑

#################################################
## mysql serverId , v1.0.26+ will autoGen
# canal.instance.mysql.slaveId=0

# enable gtid use true/false
canal.instance.gtidon=false

# position info
canal.instance.master.address=192.168.25.1:3306
canal.instance.master.journal.name=
canal.instance.master.position=
canal.instance.master.timestamp=
canal.instance.master.gtid=

# rds oss binlog
canal.instance.rds.accesskey=
canal.instance.rds.secretkey=
canal.instance.rds.instanceId=

# table meta tsdb info
canal.instance.tsdb.enable=true
#canal.instance.tsdb.url=jdbc:mysql://127.0.0.1:3306/canal_tsdb
#canal.instance.tsdb.dbUsername=canal
#canal.instance.tsdb.dbPassword=canal

#canal.instance.standby.address =
#canal.instance.standby.journal.name =
#canal.instance.standby.position =
#canal.instance.standby.timestamp =
#canal.instance.standby.gtid=

# 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.instance.pwdPublicKey=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALK4BUxdDltRRE5/zXpVEVPUgunvscYFtEip3pmLlhrWpacX7y7GCMo2/JM6LeHmiiNdH1FWgGCpUfircSwlWKUCAwEAAQ==

# table regex
canal.instance.filter.regex=.*\\..*
# table black regex
canal.instance.filter.black.regex=
# table field filter(format: schema1.tableName1:field1/field2,schema2.tableName2:field1/field2)
#canal.instance.filter.field=test1.t_product:id/subject/keywords,test2.t_company:id/name/contact/ch
# table field black filter(format: schema1.tableName1:field1/field2,schema2.tableName2:field1/field2)
#canal.instance.filter.black.field=test1.t_product:subject/product_image,test2.t_company:id/name/contact/ch

# mq config
canal.mq.topic=example
# dynamic topic route by schema or table regex
canal.mq.dynamicTopic=test.user,student\\..*,.*\\..*
canal.mq.partition=0
# hash partition config
canal.mq.partitionsNum=3
canal.mq.partitionHash=test.users:uid,.*\\..*
#################################################

四、 重啟Canal Server和Canal Instance

Canal結(jié)合RocketMQ同步MySQL到Redis的方法步驟

Canal結(jié)合RocketMQ同步MySQL到Redis的方法步驟

查看Canal Server日志

Canal結(jié)合RocketMQ同步MySQL到Redis的方法步驟

Canal結(jié)合RocketMQ同步MySQL到Redis的方法步驟

查看Canal Instance日志

Canal結(jié)合RocketMQ同步MySQL到Redis的方法步驟

五、 啟動Canal測試RocketExample

5.1 拉取代碼

$ git clone https://github.com/alibaba/canal.git

5.2 啟動測試代碼

修改RocketMQ配置

Canal結(jié)合RocketMQ同步MySQL到Redis的方法步驟

啟動Main方法,并查看控制臺

Canal結(jié)合RocketMQ同步MySQL到Redis的方法步驟

注意: running now...不代表就連接Broker成功了,這里坑了好久

六、 測試發(fā)送

6.1 MySQL插入數(shù)據(jù)

Canal結(jié)合RocketMQ同步MySQL到Redis的方法步驟

6.2 查看RocketMQ運維控制臺

Canal結(jié)合RocketMQ同步MySQL到Redis的方法步驟

點擊Message Detail

Canal結(jié)合RocketMQ同步MySQL到Redis的方法步驟

6.3 查看RocketMQ Consume控制臺

Canal結(jié)合RocketMQ同步MySQL到Redis的方法步驟

到此,相信大家對“Canal結(jié)合RocketMQ同步MySQL到Redis的方法步驟”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關內(nèi)容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI