本文介紹如何將自建Kafka集群上的消費者程序平滑地遷移到云消息隊列 Kafka 版。
背景信息
云消息隊列 Kafka 版控制臺提供遷移實例功能,您可以使用該功能將自建Kafka集群或其他云Kafka集群的元數(shù)據(jù)(Topic和Group配置信息)和消息數(shù)據(jù)同步到目標集群,遷移完成后目標集群的元數(shù)據(jù)與源集群的元數(shù)據(jù)保持一致并且持續(xù)更新。本文以開源Apache Kafka為例介紹使用實例遷移功能將自建集群上的消費者程序遷移到云消息隊列 Kafka 版。
前提條件
- 部署開源Apache Kafka集群
- 購買并部署云消息隊列 Kafka 版實例:
創(chuàng)建遷移任務
- 登錄云消息隊列 Kafka 版控制臺,在概覽頁面的資源分布區(qū)域,選擇地域。
- 在左側菜單欄單擊遷移路由,然后從實例列表的下拉列表選擇目標實例,單擊創(chuàng)建任務。
- 在創(chuàng)建任務配置向導頁面,完成以下操作。
- 創(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方式消費消息,請先在源集群停止舊消費者程序,舊消費者程序停止后,遷移組件也會停止同步舊消費者程序所用的消費組的消費位點,然后再在目標實例啟動新消費者程序。
- 若您無法確定消費者程序使用哪種消費方式,請先在源集群停止舊消費者程序,舊消費者程序停止后,遷移組件也會停止同步舊消費者程序所用的消費組的消費位點,然后再在目標實例啟動新消費者程序。