RocketMQ Connect 概念
Connector
Connector 定義資料複製來源和目的地。它從來源系統讀取資料並寫入 RocketMQ,也就是 SourceConnector,或從 RocketMQ 讀取資料並寫入目標系統,也就是 SinkConnector。Connector 決定要建立的任務數,並從 Worker 接收設定檔並傳遞給任務。
任務
任務是 Connector 任務分片的最小配置單位,負責實際將來源資料複製到 RocketMQ (SourceTask),或從 RocketMQ 讀取資料並寫入目標系統 (SinkTask)。任務是無狀態的,可以動態啟動和停止。可以平行執行多個任務,而 Connector 複製資料的平行性主要反映在任務數。
透過 Connect 的 API,您也可以看到 Connector 和任務的責任,Connector 在實作時已決定資料複製流程,Connector 接收資料來源相關設定檔,taskClass 取得要建立的任務類型,而 taskConfigs 指定任務的最大數目,並配置任務設定檔。任務取得設定檔後,便會從資料來源讀取資料並寫入目標儲存。
從以下兩個圖表中,可以清楚看到 Connector 和任務的處理基本流程。
工作器
工作器程序是連接器和任務的執行環境,它提供 RESTful 功能,接受 HTTP 請求,並將取得的設定傳遞給連接器和任務。此外,它負責啟動連接器和任務,儲存連接器設定資訊,儲存任務同步資料的位置資訊,以及負載平衡功能。Connect 群集的高可用性、擴充性和容錯處理主要仰賴工作器的負載平衡功能。
從上圖可看出,工作器透過提供的 REST API 接收 http 請求,並將接收到的設定資訊傳遞給設定管理服務。設定管理服務會將設定儲存在本機,並與其他工作器節點同步,同時也會觸發負載平衡。