canal与kafka的结合使用

kafka集群搭建:https://blog.csdn.net/qq_45271350/article/details/119411593

canal原理:

1,canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议
2,mysql master收到canal的dump请求,开始推送binary log给slave(也就是canal)
3,canal解析binary log对象(原始为byte流)

 一,下载安装canal

cd /usr/local/src/
wget   https://github.com/alibaba/canal/releases/download/canal-1.1.5/canal.deployer-1.1.5.tar.gz
mkdir  /usr/local/canal
tar -zxvf canal.deployer-1.1.5.tar.gz -C /usr/local/canal
useradd canal 
passwd canal
chown canal:canal /usr/local/canal
chown canal:canal /usr/local/canal -R
yum -y install java
#创建canal连接数据库账户
mysql -uroot -proot
>create user 'canal'@'%'  identified by 'canal';
>grant all privileges on *.* to 'canal'@'%';
>flush privileges;

su canal 

#修改配置文件,canal有两个重要的配置文件,第一个是 /usr/local/canal/conf/canal.properties
#第二个是example下的 /usr/local/canal/conf/example/instance.properties
#修改canal的主配置文件
vim /usr/local/canal/conf/canal.properties
#主要修改以下配置
canal.ip = 192.168.1.112
canal.serverMode = kafka #选择kafka
canal.mq.servers = 192.168.1.249:9092 #kafka的连接地址


#example可以是多个(当你需要同时获取多个数据库的binlog时),
#不过需要对应的修改/usr/local/canal/conf/canal.properties中的canal.destinations配置,
#如:canal.destinations = example1,example2,启动canal时就会对应的载入conf下example1和example2的配置

#修改example配置
cd /usr/local/canal/conf/example/
vim instance.properties
canal.instance.master.address=192.168.1.112:3306 # 需要连接的数据库

canal.instance.dbUsername=canal  #数据库账号
canal.instance.dbPassword=canal   #数据库密码
canal.instance.defaultDatabaseName=test  #连接的database
canal.instance.connectionCharset = UTF-8

canal.instance.filter.regex=.*\\..*   #正则匹配,什么库下的什么表,这里表示任何库下的任何表
##canal.instance.filter.regex=test\\..*

canal.mq.topic=example  #发送到的topic ,topic名称

 最后启动canal

/usr/local/canal/bin/startup.sh 

去kafdrop查看,有topic,能看到消息,就成功了

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值