本文介紹如何將自建Kafka集群上的消費者程序平滑地遷移到云消息隊列 Kafka 版

背景信息

云消息隊列 Kafka 版控制臺提供遷移實例功能,您可以使用該功能將自建Kafka集群或其他云Kafka集群的元數(shù)據(jù)(Topic和Group配置信息)和消息數(shù)據(jù)同步到目標集群,遷移完成后目標集群的元數(shù)據(jù)與源集群的元數(shù)據(jù)保持一致并且持續(xù)更新。

本文以開源Apache Kafka為例介紹使用實例遷移功能將自建集群上的消費者程序遷移到云消息隊列 Kafka 版

前提條件

創(chuàng)建遷移任務

  1. 登錄云消息隊列 Kafka 版控制臺,在概覽頁面的資源分布區(qū)域,選擇地域。
  2. 在左側菜單欄單擊遷移路由,然后從實例列表的下拉列表選擇目標實例,單擊創(chuàng)建任務
  3. 創(chuàng)建任務配置向導頁面,完成以下操作。
    1. 配置基本信息頁簽,設置任務名稱,選擇任務類型遷移,然后單擊下一步
    2. 配置源服務頁簽,配置以下參數(shù),然后單擊下一步
      參數(shù)說明示例
      接入點配置源Apache Kafka集群的接入點信息。192.168.XX.XX:9092
      安全協(xié)議選擇創(chuàng)建Apache Kafka集群時設置的安全協(xié)議。PLAINTEXT
      任務數(shù)選擇同步數(shù)據(jù)的線程并發(fā)數(shù)。12
      同步sasl用戶遷移數(shù)據(jù)時是否同步SASL用戶。單擊配置運行環(huán)境顯示該參數(shù)。
      同步topic acls遷移數(shù)據(jù)時是否同步Topic ACLS。單擊配置運行環(huán)境顯示該參數(shù)。
      同步消費組遷移數(shù)據(jù)時是否同步創(chuàng)建消費組。單擊配置運行環(huán)境顯示該參數(shù)。
      同步消費位點遷移數(shù)據(jù)時是否同步消費位點。單擊配置運行環(huán)境顯示該參數(shù)。
      Topic源實例的Topic是否需要同步到目標實例,不填寫則同步所有Topic。單擊配置運行環(huán)境顯示該參數(shù)。test-topic
      創(chuàng)建為Local引擎 Topic遷移到目標實例的非Compact類型的Topic如果想保持為Local引擎,則在此填寫。不填寫則被創(chuàng)建為云引擎。單擊配置運行環(huán)境顯示該參數(shù)。test-topic
    3. 配置目標服務頁簽,單擊創(chuàng)建
  4. 創(chuàng)建完成后,在遷移路由頁面,從實例列表的下拉列表選擇目標實例,在目標實例列表中找到創(chuàng)建的任務,單擊其操作列的部署
    遷移路由頁面,您可以看到創(chuàng)建的任務狀態(tài)運行中,則說明任務創(chuàng)建成功。您可以在左側導航欄的實例列表頁面查看遷移到云消息隊列 Kafka 版上的Apache Kafka集群。

在創(chuàng)建的遷移任務右側操作列,您可以查看任務詳情、查看同步進度、修改任務參數(shù)配置、暫停任務和刪除任務。

啟動消費者程序

通過實例遷移功能,目標實例將源實例的全量數(shù)據(jù)追平并開始追加增量后:

  • 若您創(chuàng)建消費者程序時使用Subscribe方式消費消息,可以直接在目標實例啟動新的消費者程序。新消費者程序啟動后,目標實例會阻止遷移組件繼續(xù)同步消費位點。當確認新消費者程序沒有問題后,再在源集群停止舊消費者程序。如果不停止舊消費者程序,那么當新消費者程序全部停止后,遷移組件會繼續(xù)同步消費位點,產生不可預知的問題,例如覆蓋新消費者程序提交的位點。
  • 若您創(chuàng)建消費者程序時使用Assign方式消費消息,請先在源集群停止舊消費者程序,舊消費者程序停止后,遷移組件也會停止同步舊消費者程序所用的消費組的消費位點,然后再在目標實例啟動新消費者程序。
  • 若您無法確定消費者程序使用哪種消費方式,請先在源集群停止舊消費者程序,舊消費者程序停止后,遷移組件也會停止同步舊消費者程序所用的消費組的消費位點,然后再在目標實例啟動新消費者程序。