canal 配置 多个监听 推送到不同mq

摘要:
请参阅上一节,了解如何将rabbitmq与canal1.vimcannal集成。properties canal Destinations=route1,route2将目的地设置为多个相应的目录。目录2是conf下具有相应名称的目录。将示例复制到新的cp-exampleroute1cp-rexampleroute2chmod-R777route1chmod-R77route2rm-

canal整合rabbitmq  见上篇  

如果想监听不同库 不同表到不同队列如何操作 

1. vim canal.properties

canal.destinations = route1,route2

设置目的地为多个  对应的目录是conf下的对应名字的目录 

2 复制example 为新的 

cp -r example route1
cp -r example route2

chmod -R 777 route1

chmod -R 777 route2

rm -rf example/

3 cd route1  设置监听表为test库的uesr表 

vim instance.properties

canal.instance.filter.regex=test.user  

canal.mq.topic=route1

4 cd route2 

vim instance.properties

canal.instance.filter.regex=test.tests

canal.mq.topic=route2

表过滤规则 规定要监听那些库 那些表

canal.instance.filter.regex 

mysql 数据解析关注的表,Perl正则表达式.多个正则之间以逗号(,)分隔,转义符需要双斜杠(\) 
常见例子:
1. 所有表:.* or .*\..*
2. canal schema下所有表: canal\..*
3. canal下的以canal打头的表:canal\.canal.*
4. canal schema下的一张表:canal.test1
5. 多个规则组合使用:canal\..*,mysql.test1,mysql.test2 (逗号分隔)
注意:此过滤条件只针对row模式的数据有效(ps. mixed/statement因为不解析sql,所以无法准确提取tableName进行过滤)

5 手动建立队列 绑定 到交换机,用定义的route1 和route2 

canal 配置 多个监听 推送到不同mq第1张

分别更改两个表数据 

canal 配置 多个监听 推送到不同mq第2张

结果两个队列都分别收到数据

canal 配置 多个监听 推送到不同mq第3张

{"data":[{"id":"1","name":"3234234","age":"10","sex":"1","created_at":"2010-09-09 11:11:11","updated_at":"2020-08-15 00:56:53"}],"database":"test","es":1597424213000,"id":2,"isDdl":false,"mysqlType":{"id":"int(11)","name":"varchar(255)","age":"int(11)","sex":"int(255)","created_at":"timestamp","updated_at":"timestamp"},"old":[{"name":"sdsf","updated_at":"2020-08-15 00:39:33"}],"pkNames":["id"],"sql":"","sqlType":{"id":4,"name":12,"age":4,"sex":4,"created_at":93,"updated_at":93},"table":"user","ts":1597424213307,"type":"UPDATE"}
 
 
{"data":[{"id":"2","name":"sdsdf","age":"10","sex":"1","created_at":"2010-09-09 11:11:11","updated_at":"2020-08-15 00:57:29"}],"database":"test","es":1597424249000,"id":3,"isDdl":false,"mysqlType":{"id":"int(11)","name":"varchar(255)","age":"int(11)","sex":"int(255)","created_at":"timestamp","updated_at":"timestamp"},"old":[{"name":"wersdf","updated_at":"2020-07-25 09:27:35"}],"pkNames":["id"],"sql":"","sqlType":{"id":4,"name":12,"age":4,"sex":4,"created_at":93,"updated_at":93},"table":"tests","ts":1597424249772,"type":"UPDATE"}
  

参考 https://blog.csdn.net/hyx1990/article/details/52524115

免责声明:文章转载自《canal 配置 多个监听 推送到不同mq》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇六大开源搜索引擎工具记某app内购破解 – 安卓逆向菜鸟的初体验下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【RabbitMQ】一文带你搞定springboot整合RabbitMQ涉及消息的发送确认,消息的消费确认机制,延时队列的实现

说明 这一篇里,我们将继续介绍RabbitMQ的高级特性,通过本篇的学习,你将收获: 什么是延时队列 延时队列使用场景 RabbitMQ中的TTL 如何利用RabbitMQ来实现延时队列 本文大纲 什么是延迟队列 延时队列,首先,它是一种队列,队列意味着内部的元素是有序的,元素出队和入队是有方向性的,元素从一端进入,从另一端取出。 其次,延时队列,最...

对于应用之间的调用,如何选择rpc还是mq?

两个系统之间的调用,是选择rpc呢还是mq,说一下你们系统的选择吧比如rpc可以是简单的spring httpinvoker,但是前提是都是java应用而且都是用spring framework,可以选择restful的web service或者是重量级的soap web service,或者是使用rmi,或者编写java api的socket程序;或者使...

WebSphere MQ几个特性的应用

IBM WebSphere MQ消息中间件有很多的特性和优点,使用IBM WebSphere MQ可以简化和优化消息通讯的应用设计。为了满足用户各种不同的应用的通讯需求,IBM WebSphere MQ采用了大量业界领先的技术,并拥有许多先进的功能,其中很多是其他厂商所无能为力的。将这些技术和功能应用到客户的通讯系统之中,可以简化应用逻辑,优化系统架构,从...

rabbitMq无法消费发送的q的问题

1、问题叙述:   该项目配置了10来个mq,应对新开发需求,我也加了一个mq配置,然后在本地代码当中调用,当中接受,与前面写法相似,项目上测试环境测试。发现发送了queue之后本地消费日志没有的bug。 处理方案:   1、检查我的mq的配置,检查代码中对应mq的配置,然后重试     看不出问题出在哪里,寻找方法本地测试   2、本地测试,本地项目启动...

UNIX网络编程 卷2 源代码使用

1. 下载源码,W. Richard Stevens的主页:http://www.kohala.com/start/ wget http://www.kohala.com/start/unpv22e/unpv22e.tar.gz -P /usr/local/src 2. 解压 tar xvf /usr/local/src/unpv22e.tar.gz -C...

消息中间件(一)MQ详解及四大MQ比较

一、消息中间件相关知识 1、概述 消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发RocketMQ等。 2、消息中间件的组成       2....