本章節介紹如何創建Kafka數據復制的Smart Connect任務,通過(guo)Smart Connect任務可(ke)以在(zai)兩個Kafka實(shi)例之間,實(shi)現數據的單向或雙向復制。
源(yuan)Kafka實例(li)中(zhong)的(de)數據會實時同步到目(mu)標Kafka實例(li)中(zhong)。
約束與限制
- 一個實例最多創建18個Smart Connect任務。
- 使用Kafka數據復制時,兩個Kafka實例間只能通過內網連接。如果兩個Kafka實例處于不同的VPC中,請先打通網絡。
- Smart Connect任務創建成功后,不支持修改任務參數。
- 確保目標Kafka實例Topic的“批處理消息最大值”大于等于524288字節,否則會導致數據無法同步。如果目標Kafka實例沒有創建Topic,在數據同步時會自動創建Topic,此Topic的“批處理消息最大值”和源Kafka實例Topic相同,此時需要確保源Kafka實例Topic的“批處理消息最大值”大于等于524288字節。修改“批處理消息最大值”的方法請參考修改Kafka Topic配置。
前提條件
- 已開啟Smart Connect。
- 已創建Kafka實例,且實例狀態為“運行中”。
配置Kafka間的數據復制
1、登錄管理控制(zhi)臺(tai)。
2、在管理控制臺左上角單擊
,選擇(ze)Kafka實例所在的區(qu)域(yu)。
3、在管理控制臺左上角單擊
,選擇“應用服(fu)務(wu) > 分(fen)布式(shi)消息服(fu)務(wu) Kafka”,進入分(fen)布式(shi)消息服(fu)務(wu)Kafka專享(xiang)版頁面。
4、單擊Kafka實例名(ming)稱,進入實例詳情頁面。
5、在左側導航欄單擊“Smart Connect”,進入Smart Connect任務(wu)列表頁面。
6、單擊“創建(jian)Smart Connect任務”,進入“創建(jian)smart connect”頁(ye)面。
7、在“connect任(ren)務名(ming)(ming)稱(cheng)(cheng)”中,輸入Smart Connect任(ren)務的(de)名(ming)(ming)稱(cheng)(cheng),用于區分(fen)不同的(de)Smart Connect任(ren)務。任(ren)務名(ming)(ming)稱(cheng)(cheng)需要符(fu)合命名(ming)(ming)規(gui)則:長(chang)度為(wei)4~64個(ge)字符(fu),只能由(you)英文字母、數字、中劃(hua)線(xian)、下劃(hua)線(xian)組成(cheng)。
8、在“預置類型”中,選擇“Kafka數據復制”。
9、在“當前kafka”區域,設(she)置實例(li)別名。實例(li)別名需要(yao)符合命(ming)名規則(ze):長度為1~20個(ge)字符,只(zhi)能由英(ying)文字母(mu)、數字、中劃(hua)線、下劃(hua)線組成。
實例別名用于(yu)以下兩個場景(jing)中:
- 開啟“重命名Topic”,且“同步方式”為“推送”/“雙向”時,當前Kafka實例的別名作為前綴添加到對端Kafka實例的Topic名稱前,形成Topic新的名稱。例如當前Kafka實例別名為A,對端Kafka實例的Topic名稱為test,重命名后的Topic為A.test。
- Kafka數據復制的Smart Connect任務創建成功后,當前Kafka實例會自動創建“mm2-offset-syncs. 對端Kafka實例別名 .internal”的Topic。如果Smart Connect任務開啟了“同步消費進度”功能,且“同步方式”為“拉取”/“雙向”時,當前Kafka實例還會自動創建“ 對端Kafka實例別名 .checkpoints.internal”的Topic。這兩個Topic用于存儲內部數據,如果刪除,會導致同步數據失敗。
10、在“對端(duan)kafka”區域,設置以下參數。
表1-1 對(dui)端Kafka實例參數說明
參數 參數說明 實例別名 設置實(shi)例別名(ming),實(shi)例別名(ming)需要(yao)符合命名(ming)規則:長度為1~20個(ge)字符,只能由英文字母、數字、中(zhong)劃(hua)線、下劃(hua)線組成。
實例別名用于以下(xia)兩個場景中:
開啟“重命名Topic”,且(qie)“同(tong)步方式(shi)”為“拉取(qu)”/“雙向”時(shi),對端Kafka實(shi)例的別名作為前(qian)綴添(tian)加到當前(qian)Kafka實例的(de)Topic名(ming)稱前,形成(cheng)Topic新(xin)的名稱。例如對端Kafka實例別名(ming)為B,當前Kafka實(shi)例的Topic名稱為(wei)test01,重(zhong)命名后的(de)Topic為B.test01。
Kafka數據(ju)復(fu)制(zhi)的Smart Connect任務創(chuang)建成功后,如果Smart Connect任務(wu)開(kai)啟了(le)“同(tong)步(bu)消費進(jin)度”功能(neng),且“同(tong)步(bu)方式”為“推送”/“雙向”時,對端Kafka實例會自動創建“當(dang)前Kafka實例別名(ming).checkpoints.internal”的Topic。此Topic用于存儲內部(bu)數據,如果刪(shan)除,會(hui)導致同步數據失敗。
配置類型 支(zhi)持以下兩種配(pei)置(zhi)類型:
Kafka地址:輸(shu)入Kafka實(shi)例的(de)連接信(xin)息(xi)。對端Kafka實例(li)和當前Kafka實例處于不同(tong)的VPC下時,請(qing)選擇此配置類型。
實例名稱(cheng):選擇已(yi)創建的(de)Kafka實(shi)例。對端(duan)Kafka實例和(he)當前(qian)Kafka實例處于相(xiang)同的VPC下(xia)時,建(jian)議選(xuan)擇此配(pei)置類型。
實例名稱 “配置類型”為“實(shi)例(li)名(ming)稱(cheng)”,且對端Kafka實例和當(dang)前Kafka實(shi)例(li)處于(yu)相同的VPC下時,需(xu)要設置。
在下(xia)拉列表中,選擇已創建的(de)Kafka實例。
Kafka地址 “配置類型”為“Kafka地(di)址(zhi)”時,需要設置。 輸入Kafka實例(li)的連接地址和端口號。
使用Kafka數據復制時,兩(liang)個Kafka實例間只能通(tong)過(guo)內網(wang)連接。如果兩個Kafka實例處(chu)于(yu)不同的VPC中,請先(xian)打通網(wang)絡。
認證方式 支(zhi)持(chi)以下認證方式:
SASL_SSL:表示實例(li)已開(kai)啟SASL_SSL認證,客戶端(duan)連接Kafka實(shi)例時采用SASL認證,數據通過SSL證書進(jin)行加密傳輸。
SASL_PLAINTEXT:表示實例開啟SASL_PLAINTEXT認(ren)證,客戶端連(lian)接Kafka實例時采用SASL認證,數據(ju)通(tong)過明文傳輸。
PLAINTEXT:表示實例未開啟認證(zheng)。
認證機制 “認證(zheng)方式”為“SASL_SSL”/“SASL_PLAINTEXT”時,需要設置。
SCRAM-SHA-512:采用(yong)哈希算(suan)法(fa)對用(yong)戶(hu)名與(yu)密(mi)碼生成憑證,進行身份校(xiao)驗的安全認證機制,比PLAIN機制安全性更(geng)高。
PLAIN:一種簡(jian)單的(de)用戶名密碼校驗機制。
用戶名 “認證方式”為(wei)“SASL_SSL”/“SASL_PLAINTEXT”時(shi),需要設置。
首(shou)次開啟密文接入時(shi)設置的(de)用(yong)戶名,或者(zhe)創建用(yong)戶時(shi)設置的(de)用(yong)戶名。
密碼 “認(ren)證(zheng)方式”為“SASL_SSL”/“SASL_PLAINTEXT”時,需(xu)要設置。
首次開啟密文接入時設置(zhi)的密碼(ma),或者創建用(yong)戶時設置(zhi)的密碼(ma)。
Smart Connect任務創建成功后,如果您修改了對端實例的認證方式、認證機制或者密碼,會導致同步任務失敗。 您需要刪(shan)除當前Smart Connect任(ren)務(wu),然后重新(xin)創建新(xin)的Smart Connect任(ren)務(wu)。
11、在“規則配(pei)置”區(qu)域(yu),設置以下參(can)數。
表(biao)1-2 復(fu)制數據規則參(can)數說明
參數 參數說明 同步方式 支持以下三種同步方式:
拉(la)取:把對(dui)端Kafka實例(li)數據復制到當前Kafka實例中。
推送:把當前Kafka實(shi)例數(shu)據復制到對(dui)端Kafka實例中。
雙向:兩端Kafka實例數據(ju)進(jin)行雙向(xiang)復制(zhi)。
Topics 設置需要進行數據復制的Topic。
正(zheng)(zheng)則(ze)表達式:通過(guo)正(zheng)(zheng)則(ze)表達式匹配Topic。
輸入/選擇:輸(shu)入Topic名稱(cheng),如果需要(yao)輸入多個Topic名稱,先(xian)輸入一個Topic名稱,按“Enter”,然后再輸入下一個(ge),按“Enter”,依次輸入。或者在下拉(la)列表中,選擇(ze)Topic。最多輸入/選擇20個Topic。
Topic名(ming)稱以(yi)internal結尾時(例如:topic.internal),此Topic的(de)數據不(bu)會被同步(bu)。
任務數 數據復制的任務數。默認值為2,建(jian)議保持默認值。 如果“同步方式(shi)”為“雙向”,實(shi)際任務數(shu)=設置的任(ren)務(wu)數(shu)*2。
重命名
Topic
在目標Topic名稱前添加源端(duan)Kafka實例的(de)別名,形(xing)成目標Topic新的(de)名(ming)稱。例如源端實例別名(ming)為A,目標Topic名稱為test,重命名后的(de)目標Topic為(wei)A.test。 兩端(duan)實例數據(ju)雙向復制時,開啟“重命名Topic”,防止循環復制(zhi)。
添加來源header 目標Topic接收復制的消(xiao)(xiao)息,此消(xiao)(xiao)息header中包含消(xiao)息來源(yuan)。 兩端實(shi)例(li)數據雙向(xiang)復制時,默認開啟“添加來源header”,防止循環復制。
同步消費進度 開(kai)啟“同(tong)步消費(fei)進度”后(hou),將(jiang)消費(fei)者消費(fei)進度同(tong)步到目(mu)標(biao)Kafka實例。
開啟“同(tong)步消費(fei)進度(du)”后,您需要注意以(yi)下幾點:
源端(duan)Kafka實例(li)和目(mu)標(biao)端Kafka實例不能同(tong)時消(xiao)費,否則會導致同(tong)步的消(xiao)費進度(du)異常。
同(tong)步消費進度的(de)頻(pin)率為每分鐘一(yi)次,因(yin)此會導致目標端的(de)消費進度可(ke)能會略小于源端,造成部分消息被(bei)重復消費,所以(yi)需要(yao)消費者客戶端業務邏輯兼容重復消費的(de)場景(jing)。
從源端同(tong)步的offset與目標(biao)端的offset并非一致關系,而(er)是映射關系,如果消費進度由消費者客戶端(duan)(duan)自行維(wei)護,消費者客戶端(duan)(duan)從消費源(yuan)端(duan)(duan)Kafka實(shi)例變(bian)為(wei)消費目標端Kafka實(shi)例后,不向目(mu)標(biao)端Kafka實(shi)例獲取消費進(jin)度,可能會導致offset錯誤或消費進度重(zhong)置。
副本數 在對(dui)端實例中自動創建Topic時(shi),指(zhi)定(ding)Topic的副本數,此(ci)參(can)數值不能(neng)超過對端實例的代理數。
如果(guo)對端(duan)實例中設置(zhi)了“default.replication.factor”,此參數(shu)的優先(xian)級高于“default.replication.factor”。
啟動偏移量 支(zhi)持兩種偏移量:
最(zui)早(zao):最(zui)小偏移量,即獲取最(zui)早(zao)的數(shu)據(ju)。
最新:最大偏移量,即獲取最新的數據。
壓縮算法 復制消息所使用(yong)的壓縮(suo)算法。
topic映射 通(tong)過Topic映射,您可以(yi)自(zi)定義目標端Topic名(ming)稱。
最多新增(zeng)20個Topic映射(she)。不能同(tong)時設置“重命名Topic”和(he)“topic映射”。
配(pei)置復制(zhi)數據規則時需要注意以下幾點:
- 創建雙向數據復制任務時,為了防止循環復制,控制臺限定必須開啟“重命名Topic”或者“添加來源header”。如果您在兩個實例間,對同一個Topic分別創建拉取和推送的任務,即形成雙向數據復制,且兩個任務都未開啟“重命名Topic”和“添加來源header”,此時會導致數據循環復制。
- 如果創建兩個或以上配置完全相同的任務,即重復創建任務,且任務已開啟“同步消費進度”,此時會導致數據重復復制,且目標Topic消費進度異常。
12、(可選)在(zai)頁面右下角單(dan)擊“開始檢測(ce)”,測(ce)試兩端Kafka實例的連(lian)通(tong)性。
顯示“連通性檢測成功”時,表示兩端(duan)Kafka實例可以正常連接。
13、單擊“立即創建”,跳轉到Smart Connect任務列表頁面,頁面右上角顯示“創建xxx任務成功”。
Kafka數據復制的Smart Connect任務(wu)創建(jian)成功(gong)后(hou),Kafka會自動創建(jian)以下Topic。
- 當前Kafka實例會自動創建“mm2-offset-syncs. 對端Kafka實例別名 .internal”的Topic。如果Smart Connect任務開啟了“同步消費進度”功能,且“同步方式”為“拉取”/“雙向”時,當前Kafka實例還會自動創建“ 對端Kafka實例別名 .checkpoints.internal”的Topic。這兩個Topic用于存儲內部數據,如果刪除,會導致同步數據失敗。
- 如果Smart Connect任務開啟了“同步消費進度”功能,“同步方式”為“推送”/“雙向”時,對端Kafka實例會自動創建“ 當前Kafka實例別名 .checkpoints.internal”的Topic。此Topic用于存儲內部數據,如果刪除,會導致同步數據失敗。
----結束