开发者社区> 问答> 正文

canal.mq.dynamicTopic设置为.\…*时,数据并不是发送到表名的topic

其中在canal.properties里面设置的 canal.serverMode = kafka canal.mq.flatMessage = false

在instance.properties里面设置的 canal.instance.filter.regex=dbs1.mem,dbs2.mem,dbs3.mem #canal.mq.topic=canal

canal.mq.dynamicTopic=....* canal.mq.partition=0

#canal.mq.partitionsNum=3 canal.mq.partitionHash=...:id

根据官网的介绍应该是监听的三张表应该都会发送到mem这个topic里面,但是出现了三个topic,分别是dbs1_mem,dbs2_mem,dbs3_mem,对应的分别以库名和表名为名的topic。。

分库分表的时候想要将数据同步到一个topic里面是不是我少设置了什么,还是设置错了什么

canal.mq.dynamicTopic 表达式说明 canal 1.1.3版本之后, 支持配置格式:schema 或 schema.table,多个配置之间使用逗号或分号分隔

例子1:test.test 指定匹配的单表,发送到以test_test为名字的topic上 例子2:... 匹配所有表,则每个表都会发送到各自表名的topic上 例子3:test 指定匹配对应的库,一个库的所有表都会发送到库名的topic上 例子4:test.* 指定匹配的表达式,针对匹配的表会发送到各自表名的topic上 例子5:test,test1.test1,指定多个表达式,会将test库的表都发送到test的topic上,test1.test1的表发送到对应的test1_test1 topic上,其余的表发送到默认的canal.mq.topic值

官网给出的设置例子2,但是设置还是发送到了dbs1_mem,dbs2_mem,dbs3_mem,,并不是只发到mem 现在过滤:canal.instance.filter.regex=dbs1.mem,dbs2.mem,dbs3.mem 想只发送到一个名字为mem的topic里面,需要这么配置canal.mq.dynamicTopic的值

原提问者GitHub用户BigData-YC

展开
收起
数据大拿 2023-05-04 11:14:19 218 0
1 条回答
写回答
取消 提交回答
  • 自己的问题还是得自己回答: canal.mq.dynamicTopic=mem:dbs.*.mem 不同库的同一张表

    canal.mq.dynamicTopic=mem:dbs..mem, mem1:dbs..mem1,mem2:dbs..mem2,mem3:dbs..mem3 不同库的多张表(mem1,mem2,mem3)

    原回答者GitHub用户BigData-YC

    2023-05-05 10:12:21
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
RocketMQ Client-GO 介绍 立即下载
RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载
基于 RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载