springboot+canal+rabbitmq整合
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot+canal+rabbitmq整合相关的知识,希望对你有一定的参考价值。
参考技术A 一、前提是mysql,rabbitmq已经安装完成1、打开mysql的binlog,修改my.cnf
2、上传canal.admin-1.1.5.tar.gz
2.1、修改application.yml文件
2.2、执行canal_manager.sql文件
2.3、./bin/start.sh 启动即可
2.4、访问地址http://192.168.75.150:8089/
4、进入admin管理界面进行配置
4.1、主配置
4.2、修改instance.properties
使用 Docker 部署 canal,并将消息推送到 RabbitMQ
配置 canal
1. 拉取镜像
docker pull canal/canal-server:latest
2. 启动容器
docker run -d canal/canal-server:latest
3. 从容器中拷贝出配置文件
docker cp 容器名或者容器ID:/home/admin/canalserver/conf/canal.properties ./conf/
docker cp 容器名或者容器ID:/home/admin/canal-server/conf/test/instance.properties ./conf/
4. 修改 canal.properties 文件,配置输出到 RabbitMQ,有以下几处要改:
##################################################
######### RabbitMQ #############
##################################################
rabbitmq.host = 127.0.0.1
rabbitmq.exchange = exchange.canal
rabbitmq.username = guest
rabbitmq.password = guest
5.修改 instance.properties 文件:
# position info
# MySQL 地址 + 端口
canal.instance.master.address=127.0.0.1:3306
# 数据库账号密码
canal.instance.dbUsername=root
canal.instance.dbPassword=root
# 监听的数据库表
canal.instance.filter.regex=test.user
# mq config
# RabbitMQ Routing key
canal.mq.topic=canal-routing-key
6. docker-compose 文件
version: "3.8"
services:
canal-server:
image: canal/canal-server:latest
container_name: canal-server
restart: unless-stopped
# host 网络模式只对 Docker 17.06 以及更高版本的 swarm 服务可用
network_mode: bridge
ports:
- 11111:11111
volumes:
- ./conf/canal.properties:/home/admin/canal-server/conf/canal.properties
- ./conf/instance.properties:/home/admin/canal-server/conf/test/instance.properties
- ./log/:/home/admin/canal-server/logs/
7. 启动服务
ocker-compose up -d
注意:发现启动服务失败,别担心,需要配置一下RabbitMQ
配置 RabbitMQ
1. 新建exchange
2. 新建队列
3. 绑定队列
4. 注意
- 第3步一定要与canal.properties配置文件
rabbitmq.exchange = exchange.canal
一致 - 第4步一定要与instance.properties配置文件
canal.mq.topic=canal-routing-key
一致
完整配置文件
地址:https://gitee.com/dadeity/docker.git
以上是关于springboot+canal+rabbitmq整合的主要内容,如果未能解决你的问题,请参考以下文章
python使用ssdb的队列,用于替换canal+rabbitmq
SpringBoot系列之canal和kafka实现异步实时更新
SpringBoot系列之集成阿里canal监听MySQL Binlog