跳至主要內容
版本:5.0

RocketMQ Connect 概述

RocketMQ Connect 是 RocketMQ 資料整合的重要元件,可以有效率且可靠地將資料從各種系統傳輸進出 RocketMQ。它是一個獨立、分散、可擴充且容錯的系統,具有低延遲、高可靠性、高性能、低程式碼和強大的可擴充性。它可以實現各種異質資料系統連線、資料管線建置、ETL、CDC 和資料湖功能。

RocketMQ Connect Overview

連線器工作原理

RocketMQ Connect 是一個獨立、分散、可擴充且容錯的系統,主要提供 RocketMQ 將資料流入和流出各種外部系統的能力。使用者不需要編寫程式,他們只需要簡單的設定即可使用 RocketMQ Connect,例如將資料從 MySQL 同步到 RocketMQ,只需要設定帳號密碼、連線地址,以及需要同步的資料庫和資料表名稱即可。

Connector 使用案例

建立串流資料管道

RocketMQ Connect使用场景

在業務系統中,MySQL 優異的事務支援用於處理資料新增、刪除和修改,ElasticSearch 和 Solr 用於實現強大的搜尋功能,或將產生的業務資料同步到資料分析系統和資料湖(例如 Hudi)以進行進一步處理,從而使資料產生更高的價值。使用 RocketMQ Connect,可以輕鬆實現此類資料管道功能。只需要設定三個任務:第一個任務是從 MySQL 取得資料,第二個和第三個任務是將資料從 RocketMQ 傳輸到 ElasticSearch 和 Hudi。設定這三個任務已經實現了從 MySQL 到 ElasticSearch 和 MySQL 到 Hudi 的兩個資料管道,不僅可以滿足業務中的事務需求和搜尋需求,還可以建立資料湖。

CDC

CDC 作為 ETL 模式之一,可以近乎即時地擷取資料庫的 INSERT、UPDATE、DELETE 變更,RocketMQ Connect 流動資料傳輸,具有高可用性和低延遲特性,透過 Connector 輕鬆實現 CDC。

Connector 部署

在建立 Connector 時,通常透過設定完成。Connector 通常包含邏輯 Connector 和執行資料複製的 Task,也就是物理執行緒,如下圖所示,兩個 Connector 連接器及其對應執行的 Task 任務。

RocketMQ Connect任务模型1

一個 Connector 也可以同時執行多個任務,以增加 Connector 的並行度。例如,下圖中的 Hudi Sink Connector 有 2 個任務,每個任務處理不同的分片資料,從而增加 Connector 的並行度並提升處理效能。

RocketMQ Connect任务模型2

RocketMQ Connect Worker 支援兩種執行模式,叢集和單機。在叢集模式中,顧名思義,有多個 Worker 節點,建議至少有 2 個 Worker 節點以形成高可用性叢集。叢集設定資訊、偏移資訊和狀態資訊儲存在指定的 RocketMQ Topic。新的 Worker 節點也會取得這些設定、偏移和狀態資訊,並觸發負載平衡,重新分配叢集中的任務以達成平衡狀態,並減少 Worker 節點數量或當 Worker 節點故障時,也會觸發負載平衡,以確保叢集中的所有任務都能正常執行在叢集的倖存節點上。

RocketMQ Connect部署模型集群

在獨立模式下,Connector 任務在單一機器上執行,且 Worker 本身不具備高可用性,任務偏移量資訊會儲存在本機。這適用於沒有高可用性需求或不需要 Worker 確保高可用性的場景,例如部署在由 K8s 集群保證的 K8s 集群中。

RocketMQ Connect部署模型单机