千家信息网

Canal结合RocketMQ同步MySQL到Redis的方法步骤

发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,本篇内容主要讲解"Canal结合RocketMQ同步MySQL到Redis的方法步骤",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Canal结合Rocke
千家信息网最后更新 2025年02月05日Canal结合RocketMQ同步MySQL到Redis的方法步骤

本篇内容主要讲解"Canal结合RocketMQ同步MySQL到Redis的方法步骤",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Canal结合RocketMQ同步MySQL到Redis的方法步骤"吧!

一、 安装Canal

Docker 安装单机 Canal

二、 安装RocketMQ

Docker安装单机RocketMQ

三、配置Canal的MQ

官方文档

3.1 修改 Canal Server配置

##########################################################          common argument            ############################################################### canal admin configcanal.admin.manager = 192.168.25.142:8089canal.admin.port = 11110canal.admin.user = admincanal.admin.passwd = 4ACFE3202A5FF5CF467898FC58AAB1D615029441canal.serverMode = RocketMQ###########################################################               MQ                ###############################################################canal.mq.servers = 192.168.25.142:9876canal.mq.retries = 0canal.mq.batchSize = 16384canal.mq.maxRequestSize = 1048576canal.mq.lingerMs = 100canal.mq.bufferMemory = 33554432canal.mq.canalBatchSize = 50canal.mq.canalGetTimeout = 100canal.mq.flatMessage = truecanal.mq.compressionType = nonecanal.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 = falsecanal.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/falsecanal.instance.gtidon=false# position infocanal.instance.master.address=192.168.25.1:3306canal.instance.master.journal.name=canal.instance.master.position=canal.instance.master.timestamp=canal.instance.master.gtid=# rds oss binlogcanal.instance.rds.accesskey=canal.instance.rds.secretkey=canal.instance.rds.instanceId=# table meta tsdb infocanal.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/passwordcanal.instance.dbUsername=canalcanal.instance.dbPassword=canalcanal.instance.connectionCharset = UTF-8# enable druid Decrypt database passwordcanal.instance.enableDruid=false#canal.instance.pwdPublicKey=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALK4BUxdDltRRE5/zXpVEVPUgunvscYFtEip3pmLlhrWpacX7y7GCMo2/JM6LeHmiiNdH1FWgGCpUfircSwlWKUCAwEAAQ==# table regexcanal.instance.filter.regex=.*\\..*# table black regexcanal.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 configcanal.mq.topic=example# dynamic topic route by schema or table regexcanal.mq.dynamicTopic=test.user,student\\..*,.*\\..*canal.mq.partition=0# hash partition configcanal.mq.partitionsNum=3canal.mq.partitionHash=test.users:uid,.*\\..*#################################################

四、 重启Canal Server和Canal Instance

查看Canal Server日志

查看Canal Instance日志

五、 启动Canal测试RocketExample

5.1 拉取代码

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

5.2 启动测试代码

修改RocketMQ配置

启动Main方法,并查看控制台

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

六、 测试发送

6.1 MySQL插入数据

6.2 查看RocketMQ运维控制台

点击Message Detail

6.3 查看RocketMQ Consume控制台

到此,相信大家对"Canal结合RocketMQ同步MySQL到Redis的方法步骤"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

0