【公測遷移】經(jīng)典網(wǎng)絡(luò)用戶遷移
為了提升服務(wù)質(zhì)量和您的體驗,云消息隊列 Kafka 版商業(yè)化后將全部提供專有的商業(yè)化實例,不再提供公測版的共享實例。
公測期間所有實例均為共享類型。公測結(jié)束后(2019年4月),您需購買實例,可以是VPC或公網(wǎng)/VPC類型。購買后,您將不再與其他用戶共享實例。
本文以VPC類型的實例為例。公網(wǎng)接入的更多信息請參見公網(wǎng)和VPC接入。
若您目前使用的是經(jīng)典網(wǎng)絡(luò),區(qū)別于VPC網(wǎng)絡(luò),您需要先創(chuàng)建VPC,然后通過ClassicLink的方式將經(jīng)典網(wǎng)絡(luò)與VPC連通,之后無需任何鑒權(quán)即可訪問VPC中部署的云消息隊列 Kafka 版實例。完整的業(yè)務(wù)遷移方案請參見下文。
若您目前是VPC的用戶,請參考【公測遷移】VPC和公網(wǎng)用戶遷移遷移業(yè)務(wù)。
步驟一:創(chuàng)建VPC
登錄VPC控制臺。
在頂部菜單欄,選擇地域。
重要專有網(wǎng)絡(luò)的地域必須與您經(jīng)典網(wǎng)絡(luò)中需要使用云消息隊列 Kafka 版服務(wù)的客戶端對應(yīng)的ECS實例所在的地域相同。
在左側(cè)導(dǎo)航欄,單擊專有網(wǎng)絡(luò)。
在專有網(wǎng)絡(luò)頁面,單擊創(chuàng)建專有網(wǎng)絡(luò)。
在創(chuàng)建專有網(wǎng)絡(luò)面板,填寫所需的信息,包括專有網(wǎng)絡(luò)和交換機(vSwitch)的信息,然后單擊確定。
說明專有網(wǎng)絡(luò)的目標網(wǎng)段請選擇“172.16.0.0/12”。交換機的可用區(qū)建議與經(jīng)典網(wǎng)絡(luò)中需要使用云消息隊列 Kafka 版服務(wù)的客戶端對應(yīng)的ECS實例所在的可用區(qū)保持一致。
步驟二:建立ClassicLink連接
您需要先登錄VPC控制臺開啟ClassicLink功能,然后到ECS控制臺將用于云消息隊列 Kafka 版服務(wù)的經(jīng)典網(wǎng)絡(luò)的ECS實例接入VPC。
開啟ClassicLink。
登錄VPC控制臺。
在專有網(wǎng)絡(luò)頁面,單擊創(chuàng)建的VPC。
在專有網(wǎng)絡(luò)詳情頁面,單擊開啟ClassicLink。
在開啟ClassicLink對話框,單擊確定。
接入VPC。
登錄ECS管理控制臺。
在頂部菜單欄,選擇地域。
在左側(cè)導(dǎo)航欄,單擊
。在實例列表頁面,選擇用于云消息隊列 Kafka 版服務(wù)的經(jīng)典網(wǎng)絡(luò)的ECS實例,然后單擊 。
在連接專有網(wǎng)絡(luò)對話框,選擇之前創(chuàng)建的VPC,然后單擊確定。
單擊前往實例安全組列表添加ClassicLink安全組規(guī)則,設(shè)置配置規(guī)則,然后單擊確定。
ClassicLink安全組規(guī)則的詳細說明,請參見建立ClassicLink連接中的安全組規(guī)則配置表。
在ECS管理控制臺的實例列表頁面,單擊圖標,
在自定義列表項對話框,選中連接狀態(tài),然后單擊確定,查看ECS實例的連接狀態(tài)。
步驟三:購買云消息隊列 Kafka 版實例
前往產(chǎn)品購買頁,然后根據(jù)業(yè)務(wù)所在地域購買相應(yīng)的實例。
步驟四:部署云消息隊列 Kafka 版實例
在頂部菜單欄,選擇地域。
在左側(cè)導(dǎo)航欄,單擊概覽。
在概覽頁面,找到處于未部署狀態(tài)的實例,在其右側(cè)操作列,單擊部署,然后根據(jù)頁面提示填寫VPC信息。
完成后,實例會進入部署中狀態(tài)。實例部署預(yù)計需要10分鐘~30分鐘。
重要獲取需要填寫的VPC信息的步驟請參見VPC接入。
步驟五:創(chuàng)建Topic
消息主題(Topic)是云消息隊列 Kafka 版里對消息進行的一級歸類,例如可以創(chuàng)建“Topic_Trade”這一主題用來識別交易類消息。 使用云消息隊列 Kafka 版的第一步就是先為您的應(yīng)用創(chuàng)建Topic。
在云消息隊列 Kafka 版控制臺的左側(cè)導(dǎo)航欄,單擊Topic管理。
在Topic管理頁面,選擇實例,然后單擊創(chuàng)建Topic。
在創(chuàng)建Topic頁面,輸入Topic名稱和備注,然后單擊創(chuàng)建。
Topic不能跨地域使用,需要在應(yīng)用程序所在的地域(即所部署的ECS的所在地域)進行創(chuàng)建。例如Topic創(chuàng)建在華北2(上海)這個地域,那么消息生產(chǎn)端和消費端也必須運行在華北2(上海)的ECS上。
步驟六:創(chuàng)建Consumer Group
Consumer Group是一類Consumer的標識,這類Consumer通常接收并消費同一類消息,且消費邏輯一致。Consumer Group和Topic的關(guān)系是N:N。 同一個Consumer Group可以訂閱多個Topic,同一個Topic也可以被多個Consumer Group訂閱。
在云消息隊列 Kafka 版控制臺的左側(cè)導(dǎo)航欄,單擊Consumer Group管理。
在Consumer Group管理頁面,選擇實例,然后單擊創(chuàng)建Consumer Group。
在創(chuàng)建Consumer Group頁面,填寫Consumer Group的名稱,然后單擊創(chuàng)建。
步驟七:查看實例接入點
在云消息隊列 Kafka 版控制臺的左側(cè)導(dǎo)航欄,單擊實例詳情。
在實例詳情頁面的基本信息區(qū)域,查看實例接入點。
步驟八:執(zhí)行遷移
云消息隊列 Kafka 版提供以下兩種遷移方案:
方案一:若您的業(yè)務(wù)允許丟棄少量未消費的消息數(shù)據(jù),那么,您可以直接將生產(chǎn)者和消費者更新為您新部署實例的配置,即可完成遷移。
方案二:若您的業(yè)務(wù)對消息數(shù)據(jù)比較敏感,則您需要在保證消息消費完成的情況下,完成業(yè)務(wù)的平滑遷移。平滑遷移的操作流程如下:
將生產(chǎn)者更新為新部署實例的配置,則新消息寫入新部署實例。
確保消費者在共享實例上的既存消息已消費完成。
將消費者更新為新部署實例的配置,開始消費新部署實例上的消息。
如何將舊實例的配置更新為新部署實例的配置請參見以下示例代碼:
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";
步驟九:確認遷移是否成功
如果生產(chǎn)者能成功發(fā)送且消費者能成功消費消息,則說明遷移成功。
確認生產(chǎn)者是否能成功發(fā)送消息。
在云消息隊列 Kafka 版控制臺左側(cè)導(dǎo)航欄,單擊Topic管理。
在Topic管理頁面,找到發(fā)送消息的Topic,在其右側(cè)操作列,單擊分區(qū)狀態(tài)。
在分區(qū)狀態(tài)對話框,如果能看到最近更新時間有更新,則代表生產(chǎn)者已成功發(fā)送消息。
確認消費者是否能成功消費消息
在云消息隊列 Kafka 版控制臺左側(cè)導(dǎo)航欄,單擊Consumer Group管理。
在Consumer Group管理,找到消費消息的Consumer Group,在其右側(cè)操作列,單擊消費狀態(tài)。
在消費狀態(tài)對話框,如果能看到最近消費時間有更新,則代表消費者已成功消費消息。