全部產品
Search
文件中心

ApsaraMQ for Kafka:Confluent叢集遷移教程

更新時間:Dec 27, 2024

當您需要把Topic從一個Confluent叢集遷移至另一個叢集時,阿里雲提供兩種遷移方案:遷移操作和資料移轉。遷移操作適用於訊息保留較少的情境,操作簡單;資料移轉使用ClusterLink做資料移轉,由阿里雲支援人員提供遠程協助,適用於資料重要,訊息保留時間長、需要將資料移轉到新的叢集上的情境。

遷移前需注意什嗎?

  • 在遷移過程中,源叢集的Confluent Platform版本不能低於6.1。

  • 需檢查源叢集是否使用了Schema Registry的相關功能,若有則需要進行Schema的遷移。

  • 暫不支援組件的遷移。

  • 暫不支援Transation Topic的遷移。

  • 遷移前需要評估執行個體的壓力情況,包括入/出流量。建議在業務低峰期進行遷移。

遷移前需準備什嗎?

  • 源叢集的URL資訊。

  • 需要遷移的Topic的帳號和密碼。

  • 源叢集Cluster ID。

  • Root帳號密碼(若需要阿里雲支援人員協助完成遷移需提供此資訊)

  • 評估叢集的基本情況,包括組件資訊,流量資訊。

前提條件

遷移方式

資料移轉

當需要遷移資料時,可採用該遷移方式,使用ClusterLink做資料移轉。該方式適合資料重要,訊息保留時間長,需要將資料移轉到新的叢集上的情境。

使用ClusterLink做資料移轉能夠將舊叢集資料移轉到新的叢集,需要提交工單申請。

資料不遷移(推薦)

當不需要遷移資料時,無需使用ClusterLink做資料移轉,只需等到舊執行個體的資料到期或者資料不需要後,遷移到新的叢集。該方式適合訊息保留較少的情境。

說明

由於訊息資料不是持久化長時間儲存,具備到期刪除特性,所以遷移時建議您採用此方式。

資料放棄

直接使用新的叢集,將生產者和消費者都遷移到新的叢集上。此方式適用於資料可以丟棄或者訊息的生產者方便重新生產資料的情境。

遷移步驟

為方便您更加快捷完成遷移過程,我們提供遷移操作和資料移轉兩種遷移方式,遷移操作由您獨立操作,資料移轉由阿里雲支援人員遠程輔助完成,若有需要請提交工單申請。

遷移操作

LDAP遷移

登入阿里雲Confluent叢集控制台,將帳號密碼資訊更新到新的叢集上。

  1. 登入雲訊息佇列 Kafka 版控制台,在左側導覽列,單擊实例列表

  2. 实例列表頁面,單擊目標執行個體名稱。

  3. 实例详情頁面,單擊左側操作欄的使用者管理,然後單擊添加LDAP使用者

  4. 添加LDAP使用者對話方塊,設定使用者名稱稱、密碼並確認密碼,單擊確認

  5. 登入Control Center,詳情請參見登入Control Center

  6. 在右側功能表列選擇image > MANAGE ROLE ASSIGNMENTS,然後單擊Assignments,選擇目標新叢集。

  7. 在叢集詳情頁面,單擊右側Add role assignment,將LDAP許可權資訊更新到新的叢集上。image

資料移轉

  1. 在新的叢集中建立舊叢集對應的Topic。詳情請參見建立Topic

  2. 修改生產者的存取點,將生產者轉移到新的叢集上。

  3. 等待消費者在舊的叢集上消費完成,修改消費者的存取點,將消費者轉移到新的叢集上。

  4. 下線舊叢集。

Schema遷移

在新的叢集中建立Topic後,可以自行在Topic上建立Schema。

image

資料移轉

LDAP遷移

阿里雲將通過提供Curl命令的方式輔助您進行遷移。

  1. 登入雲訊息佇列 Kafka 版控制台,將LDAP使用者帳號密碼資訊添加至新叢集中,詳情請參見新增使用者

  2. 阿里雲向您提供相關Curl命令以拉取您的LDAP許可權資訊。

  3. 您將LDAP許可權資訊發送給阿里雲支援人員。

  4. 執行阿里雲提供的Curl命令,將許可權資訊更新到新的Confluent叢集上。

    樣本如下:

    curl -i -X POST \
       -H "Authorization:Basic XXXX==" \
       -H "Content-Type:application/json" \
       -d \
    '{"clusters":{"kafka-cluster":"XXXX"},"path":[]}' \
     'https://mds-XXXX.csp.aliyuncs.com/security/1.0/lookup/managed/rolebindings/principal/User:root'

通過ClusterLink遷移資料

Confluent提供了ClusterLink這一遷移工具,能夠無損地將Topic從一個Cluster遷移到另一個Cluster上。 ClusterLink運行在Kafka Broker上,通過建立Mirror Topic的方式,使用Consumer去消費源叢集的資料。等到新的Topic跟上了舊叢集的Topic,即可遷移生產者和消費者到新的叢集,並將其狀態從同步中改為正常狀態,即完成了同步。

  1. 阿里雲支援人員建立Clusterlink任務,並且設定需要同步的Mirror Topic。Clusterlink開啟遷移後,等待Mirror的Lag靠近0。

  2. 您停止源Topic的訊息生產,待消費者消費完剩餘資料後再停止消費者。

    說明

    如果這裡有微服務同事進行生產和消費,那麼需要再停止生產者時停止這樣的微服務。

  3. 當Mirror Lag為0時,阿里雲支援人員將Mirror Topic的狀態設定為PROMOTE,成為正式的Topic意味著這個Topic可以在Destination Cluster上進行生產。

  4. 將所有的消費者和生產者都移動到新的叢集上。當資料已經完成遷移,阿里雲支援人員會修改網域名稱解析,將網域名稱重新導向到新的叢集。

  5. 您重新啟動生產者和消費者,就可以完成消費者和生產者從舊叢集到新叢集的轉移。

  6. 檢查遷移後的Topic是否能正常工作。

通過SchemaLink遷移Schema

您將需要通過SchemaLink遷移的Topic提供給阿里雲支援人員,阿里雲側建立SchemaLink,將源叢集的Schema資訊同步到目的地組群的Schema上。這裡需要保證在遷移過程中,不要建立新的Schema或者對Topic進行變動。

遷移後驗證

  1. 檢查LDAP、ACL許可權是否正確;關注LDAP各個條目是否一致;日誌是否有報錯;各個功能是否正常;調用API訪問LDAP擷取的結果是否一致;這裡阿里雲側會通過執行LDAP API擷取的資訊進行判斷。

  2. 檢查Topic是否已成功建立。

  3. 檢查各個Topic的Offset是否和舊叢集對應,是否有訊息丟失、重複。

  4. 檢查遷移後功能是否正常。