為了保證服務質量和用戶體驗,云消息隊列 Kafka 版商業化后將提供用戶專有的商業化實例,不再提供公測版的共享實例服務。
公測期間所有實例均為共享類型,供所有用戶使用。公測結束后(2019年4月上旬結束公測),您需購買您的實例,可以是VPC或公網類型。購買后,您將不再與其他用戶共享實例。
本文以VPC網絡類型的實例為例。公網接入的更多信息請參見公網+VPC接入。
- 若您已經是VPC的用戶,請按照以下步驟將現有業務遷移到云消息隊列 Kafka 版商用實例上。
- 若您目前是經典網絡的用戶,請參見【公測遷移】經典網絡用戶遷移遷移業務。
步驟一:購買云消息隊列 Kafka 版實例
前往產品購買頁,請根據業務所在地域購買相應的實例。
步驟二:部署云消息隊列 Kafka 版實例
登錄云消息隊列 Kafka 版控制臺,在概覽頁查看已購買的實例。
選擇處于未部署狀態的實例,單擊部署按鈕,然后根據頁面提示填寫VPC信息。
完成后,實例會進入部署中狀態。實例部署預計需要10分鐘 ~ 30分鐘。
重要 獲取需要填寫的VPC信息的步驟請參見VPC接入。刷新控制臺頁面。若實例狀態顯示服務中,即表示已部署成功。
步驟三:創建Topic
消息主題(Topic)是云消息隊列 Kafka 版里對消息的一級歸類,例如可以創建“Topic_Trade”這一主題用來識別交易類消息。 使用云消息隊列 Kafka 版的第一步就是先為您的應用創建Topic。
請按照以下步驟創建Topic:
在云消息隊列 Kafka 版控制臺的左側導航欄中,單擊Topic管理。
在Topic管理頁面的上方選擇相應的地域,例如華北2(上海),然后單擊創建Topic按鈕。
在創建Topic頁面,輸入Topic名稱和備注并選擇已部署的新實例,然后單擊確認。
完成后,您創建的Topic將出現在Topic管理頁面的列表中。
步驟四:創建Consumer Group
Consumer Group是一類Consumer的標識,這類Consumer通常接收并消費同一類消息,且消費邏輯一致。Consumer Group和Topic的關系是N:N。 同一個Consumer Group可以訂閱多個Topic,同一個Topic也可以被多個Consumer Group訂閱。
創建完Topic后,請按以下步驟創建Consumer Group:
在云消息隊列 Kafka 版控制臺的左側導航欄中,單擊Consumer Group管理。
在Consumer Group管理頁面的上方選擇相應的地域,例如華北2(上海),單擊創建Consumer Group按鈕。
在創建Consumer Group頁面,填寫Consumer Group的名稱,單擊創建。
完成后,您創建的Consumer Group將出現在Consumer Group管理頁面的列表中。
步驟五:獲取實例接入點
實例的接入點是您在使用SDK接入云消息隊列 Kafka 版時需要配置的一個配置項。如果您選擇遷移到您新部署的實例,則需獲取您新部署的實例的接入點。
同一個實例的接入點一致,因此可任意選擇該實例的資源(Topic或Consumer Group)獲取接入點。
請按以下步驟獲取您新部署的實例的接入點:
進入控制臺的Topic管理或Consumer Group管理頁面。
單擊Topic或Consumer Group 操作列中的獲取接入點。
在接入點頁面,單擊復制。
步驟六:執行遷移
云消息隊列 Kafka 版提供以下兩種遷移方案:
- 方案一:若您的業務允許丟棄少量未消費的消息數據,那么,您可以直接將生產者和消費者更新為您新部署實例的配置,即可完成遷移。
- 方案二:若您的業務對消息數據比較敏感,那么,您需要在保證消息消費完成的情況下,完成業務的平滑遷移。
方案二的平滑遷移步驟如下:
將生產者更新為新部署實例的配置,則新消息寫入新部署實例。
確保消費者在共享實例上的既存消息已消費完成。
將消費者更新為新部署實例的配置,開始消費新部署實例上的消息。
請按照以下示例代碼修改配置文件kafka.properties
,以更新至新部署的實例相關配置:
Java
1. bootstrap.server修改:舊接入點(如kafka-cn-internet.aliyun.com:8080)=> 新部署實例的接入點(如192.168.0.1:9092,192.168.0.2:9092);
2. security.protocol修改:"SASL_SSL" => "PLAINTEXT";
Go
1. servers修改:舊接入點(例如kafka-cn-internet.aliyun.com:8080)=> 新集群的接入點(例如192.168.0.1:9092,192.168.0.2:9092)
2. clusterCfg.Net.SASL.Enable修改:true => false
3. clusterCfg.Net.TLS.Enable修改:true => false
Python
1. bootstrap.server修改:舊接入點(如kafka-cn-internet.aliyun.com:8080)=> 新部署實例的接入點(如192.168.0.1:9092,192.168.0.2:9092);
2. security.protocol修改:"SASL_SSL" => "PLAINTEXT";
Node.js
1. bootstrap.server修改:舊接入點(如kafka-cn-internet.aliyun.com:8080)=> 新部署實例的接入點(如192.168.0.1:9092,192.168.0.2:9092);
2. security.protocol修改:"SASL_SSL" => "PLAINTEXT";
步驟七:驗證遷移是否成功
如果生產者能成功發送且消費者能成功消費消息,則說明遷移成功。
驗證生產者是否能成功發送消息:
- 在云消息隊列 Kafka 版控制臺左側導航欄單擊Topic管理。
- 在Topic的操作列單擊分區狀態。
若能看到最近更新時間有更新,則代表生產者已成功發送消息。
驗證消費者是否能成功消費消息:
- 在云消息隊列 Kafka 版控制臺左側導航欄單擊Consumer Group管理。
- 在Consumer Group的操作列單擊消費狀態。
若能看到最近消費時間有更新,則代表消費者已成功消費消息。