跨互联网数据互通(HTTP)
· 阅读需 7 分钟
简介
CloudCanal 实现的 基于 Kafka 构建安全的跨互联网数据同步 方案被客户用于生产后,又出现了新的需求,主要集中在方案能否更加轻量化和可控性上,简而言之,去掉 Kafka 中转,直接在 CloudCanal 中实现跨网络安全互通。
本篇文章即介绍 CloudCanal 实现的更加轻量化方案,特点包括
- 无消息等独立软件依赖
- 两端数据库完全不开放公网端口
- 两端数据库元数据可映射
- 基于 HTTPS 传输
- 具备用户名密码鉴权机制
- 支持多种数据库异构互通
技术点

Tunnel数据源
去掉消息依赖的跨互联网数据库互通,我们是通过一个虚拟的数据源 Tunnel 实现。 Tunnel 数据源本身并不是实体数据库,而是一组逻辑信息,包括
- ip(或域名)
- port
- 用户名
- 密码
- TLS 证书文件和密码
- 元数据
通过这个虚拟数据源,我们可以使用 HTTP(S) 或 TCP 实现数据拉取或者接收数据的目的,同时完全匹配 CloudCanal 业务模型,达到功能的完整性。
PUSH模型
对于数据传输模式 PUSH 或 PULL,我们选择了 PUSH 模式,即客户端将数据推送到服务端,本质原因在于
- 主要解决互通问题,而非订阅问题
- 目标端同步写入数据更加匹配 CloudCanal 其他目标端风格
- 数据通道无数据持久化,无需维护 store 来暂存数据
当然,PUSH 模式也带来一些问题,包括
- 如何确保最终数据写入再提交位点
- 位点回溯复杂(全量和增量、不同数据源位点格式不一致)
对于上述两个问题,我们采用 延迟提交位点技术 解决
