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