开发者社区> 问答> 正文

canal.instance.filter.regex 在什么地方生效

我在一台服务器上起了一个 canal 的进程,只接收 mysql 指定表的 binglog 然后发送到 rocketMQ 下面哪个是叙述是正确的呢?

1 所有表的 binlog 都发送到了 canal 进程所在的服务器,由 canal 进程负责 做 filter

2 只是指定表的 binlog 发送到了 canal 进程坐在的服务器, filter 在 mysql server 端就生效了。

原提问者GitHub用户leiwangouc

展开
收起
云上静思 2023-05-04 13:20:47 109 0
2 条回答
写回答
取消 提交回答
  • 1 所有表的 binlog 都发送到了 canal 进程所在的服务器,由 canal 进程负责 做 filter

    原回答者GitHub用户agapple

    2023-05-05 10:46:21
    赞同 展开评论 打赏
  • 随心分享,欢迎友善交流讨论:)

    正确答案是2。根据 Canal 的实现原理,它是通过 MySQL 的 binlog 实现数据同步的,可以通过配置 canal.instance.filter.regex 来指定需要同步的表,只有匹配到该正则表达式的 binlog 事件才会被 Canal 接收并发送到 RocketMQ。因此,在 Canal 进程所在的服务器上只会接收到指定表的 binlog,而其他表的 binlog 不会发送到 Canal 进程。同时,Canal 的 Filter 功能只是对接收到的 binlog 事件进行处理,而不会影响 MySQL Server 端的 binlog 产生。

    2023-05-04 17:58:42
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载