Skip to main content

产品架构

CloudCanal 产品架构整体体现为多租户、分布式的特点,目标是解决用户在各个网络环境下、数据在各个数据库或数据源间流动的需求。 本文从整体架构、容灾方案、网络方案简要介绍 CloudCanal 是如何达成这个目标。

部署架构

CloudCanal 组件分为 Console , SidecarServer , 其中 Console 是集中化的管控服务, 以集群方式存在。 Sidecar 和 Server 部署具体迁移同步节点上,一个节点通常为一台 VM,或物理机,或云托管主机(ECS,EC2等),一个节点上只会有一个 Sidecar 进程,而 Server 进程有 0~n 个。

Console 包含了 CloudCanal 所有的产品化服务,包括生命周期管理、容灾调度、监控告警、流程状态机流转、机器和数据源管理、用户权限等, 其中用户资源被很好地隔离,所有操作被鉴权、审计记录。

Sidecar 进程单向访问 Console,其职责包括获取本用户需要运行的任务配置、收集和上报运行中任务的状态、执行任务的健康检查等工作。

Server 进程具体执行数据流动任务,根据不同类型的任务,Server 将运行不同类型的任务逻辑,包括全量数据迁移、增量数据同步、数据校验等, 同时它也会不断上报任务的执行位点、资源使用状况等。

内核架构

CloudCanal 内核是一体化架构,通过单个进程完成所有数据源之间数据迁移,同步,校验等工作。

职能单一功能内聚问题容易排查,通过与管控及其他数据库(如消息系统)配合,达到很好的稳定性和扩展性。

CloudCanal 对于数据源支持采用 插件机制,按需加载使用。同时也解决各个数据源驱动之间依赖冲突问题。具备很好的适应性。

容灾架构

CloudCanal 容灾主要包含两个方面:管控容灾任务容灾

  • 管控容灾 CloudCanal 主要是通过集群化部署解决,有状态部分交由管控数据库解决。

  • 任务容灾 CloudCanal 任务容灾具备 2 级容灾,在节点资源充足的情况下,不强依赖底层操作系统或物理机器容灾措施。

    • 1 级容灾 : Sidecar 进程退出或机器不正常以及网络隔离情况下,Console 根据租期和 Sidecar 链接状态,进行主动容灾调度,
    • 2 级容灾 : Sidecar 进程正常,任务进程不正常,Sidecar 通过健康监测保障其负责的任务按照管控指定的状态运行,保活或保死,