TECH NOTES / 中间件与数据
Canal 订阅过滤与相关资料
原笔记 2024-11-01 · 整理于 2026-10-05
整理 Canal 订阅过滤规则和 CloudCanal 资料入口,区分两类工具的用途。
先区分两个项目
原笔记同时收藏了 Alibaba Canal 和 CloudCanal 的资料,名称相近,但配置不可混用。下面的 CanalConnector 与订阅过滤讨论的是 Canal。CloudCanal 的服务形式与授权范围,请到其官网核对,旧群公告中的“免费”和“最新版本”不再作为当前结论。
配置的过滤正则
参考:
Canal配置connector.subscribe和canal.instance.filter.regex遇到的坑

注意:
如果修改了canal配置的instance文件,一定不要在客户端调用CanalConnector.subscribe(".*\\..*"),不然等于没设置canal.instance.filter.regex。配置根据CanalConnector.subscribe(”表达式“)里的正则表达式进行过滤
如果 设置了canal.instance.filter.regex。 可以设置 connector.subscribe(); 不填写任何配置。
CanalConnector是否调用subscribe(filter)方法;有的话,filter需要和instance.properties的canal.instance.filter.regex一致,否则subscribe的filter会覆盖instance的配置,如果subscribe的filter是.*\..*,那么相当于你消费了所有的更新数据
修改canal instance 连接密码
原笔记使用 MySQL 的 PASSWORD() 函数生成 Canal 连接密码。这属于旧环境记录,不能直接套用到 MySQL 8.0。先区分 Canal 客户端连接凭据与 Canal 读取源库的凭据,再按实际 Canal 版本的认证配置处理。
参考:Canal 项目文档。