首页 > 其他分享 >使用Canal监听Binlog将数据发送到RocketMQ

使用Canal监听Binlog将数据发送到RocketMQ

时间:2024-08-01 20:56:23浏览次数:17  
标签:Canal Binlog 部署 instance rocketmq mysql test RocketMQ canal

文章目录


一、部署RocketMQ

win11 部署RocketMQ 和可视化界面
可视化界面是源码,需要在本地编译运行,下面是直接编译好的 jar 包
rocketmq-dashboard-1.0.1-SNAPSHOT.jar

二、部署MySQL

网上有许多教程,在这里不在赘述,部署好后,修改配置文件。

1、开启mysql的binlog写入功能

  [mysql]
  log-bin=mysql-bin #添加这一行就 ok   
  binlog-format=ROW #选择 row 模式    
  server_id=1       #不能和canal的slaveId重复

2、创建一个有相关权限的mysql slave账号

# 创建账号
CREATE USER canal IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY 'canal';
# 给账号赋权限
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%'; 
# 刷新
FLUSH PRIVILEGES;

三、部署 Canal

下载canal.deployer
我下载的是1.1.5的版本,注意,在部署canal的时候,java版本是1.8,不然会报错

1、修改conf/canal.properties配置文件

# 默认为tcp,我这里选择将监听到的消息发送到rocketMQ
canal.serverMode = rocketmq
# 当前server上部署的instance列表,默认为example
canal.destinations = example
# mq的地址和端口
canal.mq.servers = 127.0.0.1:9876
# 创建的mysql slave账号和密码
canal.instance.tsdb.dbUsername = canal
canal.instance.tsdb.dbPassword = canal
##################################################
#########           RocketMQ         #############
##################################################
rocketmq.producer.group = test
rocketmq.enable.message.trace = false
rocketmq.customized.trace.topic =
rocketmq.namespace =
rocketmq.namesrv.addr = 127.0.0.1:9876
rocketmq.retry.times.when.send.failed = 0
rocketmq.vip.channel.enabled = false

2、修改conf/example/instance.properties配置文件

# mysql从服务Id,未被其他mysql服务使用即可
canal.instance.mysql.slaveId = 1234
# mysql主服务的地址和端口
canal.instance.master.address = 127.0.0.1:3306
# 指定要监听的数据库
canal.instance.defaultDatabaseName = canal_test
# username/password 数据库的用户名和密码
canal.instance.dbUsername=root
canal.instance.dbPassword=123456
# 需要监听的表的表达式,我这里只监听了test数据库下的binlog_test表
# 1.  所有表:.*   or  .*\\..*
# 2.  canal schema下所有表: canal\\..*
# 3.  canal下的以canal打头的表:canal\\.canal.*
# 4.  canal schema下的一张表:canal.test1
# 5.  多个规则组合使用:canal\\..*,mysql.test1,mysql.test2 (逗号分隔)
canal.instance.filter.regex=test\\.binlog_test
# rocketMQ的topic,如果使用rabbitMQ此处配置rabbitMQ的routingkey
canal.mq.topic=ROCKET_TEST

四、实际操作

表的结构和数据
在这里插入图片描述
修改后的数据:
在这里插入图片描述
消息队列里面的消息:
在这里插入图片描述
可以看到有旧数据,新数据,数据库名,表名,语句类型等相关信息。

标签:Canal,Binlog,部署,instance,rocketmq,mysql,test,RocketMQ,canal
From: https://blog.csdn.net/qq_43302441/article/details/140856276

相关文章

  • RocketMq
    RocketMQ的使用场景应用解耦系统的耦合性越高,容错性就越低。以电商应用为例,用户创建订单后,如果耦合调用库存系统、物流系统、支付系统,任何一个子系统出了故障或者因为升级等原因暂时不可用,都会造成下单操作异常,影响用户使用体验。流量削峰应用系统如果遇到系统请求流量的瞬......
  • rocketmq普通消息-消息类型
    引用普通消息发送|RocketMQ异步调用的经典业务场景_使用异步的业务场景-CSDN博客同步消息类型Send消息发送方发出一条消息后,会在收到服务端同步响应之后才发下一条消息的通讯方式,可靠的同步传输被广泛应用于各种场景,如重要的通知消息、短消息通知等。用途1.重要通知......
  • Python rocketMq 客户端的同步和异步模式
    同步模式fromrocketmq.clientimportPushConsumer,ConsumeStatusimporttimedefcallback(msg):print(msg.id,msg.body,msg.get_property('property'))returnConsumeStatus.CONSUME_SUCCESSdefstart_consume_message():consumer=PushCon......
  • canal 报错:Could not find first log file name in binary log index file
    canalwiki地址:https://github.com/alibaba/canal/wiki/canal报错:Couldnotfindfirstlogfilenameinbinarylogindexfile1、canal_deployer日志报错:2024-07-2914:25:21.624[destination=example,address=/192.168.1.7:3306,EventParser]ERRORc.a.o.c.p.......
  • MySQL 主从复制,常见的binlog错误及解决方法
    在主从复制架构下,MySQL通过binlog来实现主从数据的一致性。 MySQL主从复制主要有以下步骤1.master将改变记录到binarylog中2.slaveio_thread去请求主库的binlog,并将得到的binlog日志写到relaylog中3.slavesql_thread重做relaylog中的事件 除了作为MySQL主从复制......
  • RocketMQ知识总结(基本原理)
    文章收录在网站:http://hardyfish.top/文章收录在网站:http://hardyfish.top/文章收录在网站:http://hardyfish.top/文章收录在网站:http://hardyfish.top/基本原理总体架构图零拷贝零拷贝技术是一个思想,指的是指计算机执行操作时,CPU不需要先将数据从某处内存复制到另......
  • 基于Docker安装RocketMQ
    1、拉取RocketMQ镜像代码:dockerpullapache/rocketmq成功示例:Usingdefaulttag:latestlatest:Pullingfromapache/rocketmq2d473b07cdd5:Pullcomplete23700610a3bb:Pullcompleteb58ea7c35511:Pullcompletea5224a1908d3:Pullcompleteb4d9fb37957c:Pull......
  • RocketMQ命令介绍及RocketMQ的可视化工具部署
    前言上篇文章我们介绍了RocketMQ集群的搭建,但是我们只能通过命令来查看集群情况。所以,这篇文章我们主要介绍RocketMQ的可视化平台。RocketMQ的可视化工具主要用于监控和管理RocketMQ集群,帮助我们更加直观地了解RocketMQ的运行状态和性能指标。mqadmin工具RocketMQ官方......
  • Raft协议深度解析:RocketMQ中基于DLedger的日志主从复制
    本文所涉及的注释源码:bigcoder84/dledgerRaft协议主要包含两个部分:Leader选举和日志复制。前面我们在Raft协议深度解析:RocketMQ中的自动Leader选举与故障转移一文中已经详细介绍了DLedger如何实现Leader选举的,而本文主要聚焦于Leader选举完成后的日志复制的过程。一.Rock......
  • 公司技术栈用到了RocketMQ,我对此块知识进行了回顾(初始RocketMQ)
    前言作为24届的校招生,不知道大伙儿们是否都已经到了工作岗位上。为了以后更方便的接触到公司的业务,我司为我们安排了将近一个月的实操。虽然不用敲代码,但是…了解到我司使用到的技术栈,在空闲时间正好对RocketMQ这块技术做个回顾,希望能回想起那死去的记忆,同时希望能够帮助......