跨互联网数据同步进阶
简介
CloudCanal 推出 跨互联网安全数据同步 方案之后,有一些商业客户落地,效果良好,不过客户也反馈了一些改进和新需求,其中最大的一个需求即双向同步防循环。
近期 CloudCanal 版本支持了这个特性,整体方案进一步升级,最大特点包括:
- 两端数据库完全不开放公网端口
- 两端数据库可双向同步,无循环
- 两端数据库元数据可映射
- 具备传输安全和鉴权
- 不依赖消息等软件
技术点

防循环
我们复用了 CloudCanal 处理 MySQL 双向同步防循环逻辑, 写入对端时, SQL 自动带上 /*ccw*/ 标记。
再打开 MySQL binlog_rows_query_log_events 参数, 将 binlog DML 事件顺序变成 QueryEvent(TxBegin)、TableMapEvent、RowsQueryLogEvent、WriteRowEvent(IUD)、QueryEvent(TxEnd)。
其中 RowsQueryLogEvent 中的 SQL 如果带有 /*ccw*/ ,则为循环事件, 进行过滤。从而达到防循环目的。