RocketMQ Connect 概念
连接器 (Connector)
连接器定义了数据从何处复制以及复制到何处。它从源系统读取数据并将其写入 RocketMQ,这就是 SourceConnector(源连接器),或者从 RocketMQ 读取数据并将其写入目标系统,这就是 SinkConnector(汇连接器)。连接器决定了要创建的任务数量,并从 Worker 接收配置并将其传递给任务。
任务 (Task)
任务是连接器任务分片的最小分配单元,负责实际将源数据复制到 RocketMQ(SourceTask),或从 RocketMQ 读取数据并将其写入目标系统(SinkTask)。任务是无状态的,可以动态启动和停止。多个任务可以并行执行,连接器的数据复制并行性主要体现在任务数量上。
通过 Connect 的 API,您也可以清楚地看到连接器和任务的职责。连接器在实现时已经确定了数据复制流,连接器接收数据源相关的配置,`taskClass` 获取要创建的任务类型,`taskConfigs` 指定最大任务数,并为任务分配配置。任务获取配置后,从数据源读取数据并将其写入目标存储。
从以下两张图可以清楚地看到连接器和任务处理的基本流程。
工作进程 (Worker)
工作进程是连接器和任务的运行环境,它提供 RESTful 能力,接收 HTTP 请求,并将获取到的配置传递给连接器和任务。此外,它还负责启动连接器和任务,保存连接器配置信息,保存任务同步数据的位置信息,以及负载均衡能力。Connect 集群的高可用性、伸缩性和故障处理主要依赖于 Worker 的负载均衡能力。
从上图可以看出,Worker 通过提供的 REST API 接收 HTTP 请求,并将接收到的配置信息传递给配置管理服务。配置管理服务将配置保存在本地并与其他 Worker 节点同步,同时触发负载均衡。