配置數(shù)據(jù)層
配置異地應(yīng)用雙活數(shù)據(jù)層主要包括數(shù)據(jù)源、數(shù)據(jù)同步以及數(shù)據(jù)保護(hù)規(guī)則。各單元之間數(shù)據(jù)源的數(shù)據(jù)會(huì)通過(guò)數(shù)據(jù)同步組件進(jìn)行復(fù)制,并按照指定的數(shù)據(jù)保護(hù)規(guī)則承擔(dān)不同比例流量寫入和讀取,使各個(gè)單元的數(shù)據(jù)保持最終一致性。當(dāng)某個(gè)單元出現(xiàn)異?;蛘卟豢捎玫那闆r時(shí),可通過(guò)切流單迅速將數(shù)據(jù)庫(kù)從主單元切換到正常單元,保證業(yè)務(wù)的可持續(xù)性和穩(wěn)定性。
前提條件
配置MySQL數(shù)據(jù)層的前提條件:
在兩個(gè)單元環(huán)境中分別已創(chuàng)建一個(gè)或多個(gè)同名MySQL。具體操作,請(qǐng)參見快速創(chuàng)建RDS MySQL實(shí)例。
已在對(duì)應(yīng)源MySQL實(shí)例和目標(biāo)MySQL實(shí)例之間建立好同步鏈路,且同步鏈路狀態(tài)已達(dá)到同步中。具體操作,請(qǐng)參見配置同步任務(wù)(舊控制臺(tái))。
配置DRDS數(shù)據(jù)層的前提條件:
在兩個(gè)單元環(huán)境中分別已創(chuàng)建一個(gè)或多個(gè)同名DRDS。具體操作,請(qǐng)參見創(chuàng)建DRDS實(shí)例。
已在對(duì)應(yīng)源DRDS實(shí)例和目標(biāo)DRDS實(shí)例之間建立好同步鏈路,且同步鏈路狀態(tài)已達(dá)到同步中。具體操作,請(qǐng)參見配置同步任務(wù)(舊控制臺(tái))。
配置PolarDB Mysql或者PolarDB O數(shù)據(jù)層的前提條件:創(chuàng)建PolarDB數(shù)據(jù)庫(kù)集群。
配置Redis數(shù)據(jù)層的前提條件:
在兩個(gè)單元環(huán)境中分別已創(chuàng)建一個(gè)或多個(gè)同名Redis。具體操作,請(qǐng)參見創(chuàng)建Redis實(shí)例。
已在對(duì)應(yīng)源Redis實(shí)例和目標(biāo)Redis實(shí)例之間建立好同步鏈路,且同步鏈路狀態(tài)已達(dá)到同步中。具體操作,請(qǐng)參見配置同步任務(wù)(舊控制臺(tái))。
配置PostgreSQL數(shù)據(jù)層的前提條件:
在兩個(gè)單元環(huán)境中分別已創(chuàng)建一個(gè)或多個(gè)同名PostgreSQL。具體操作,請(qǐng)參見創(chuàng)建RDS PostgreSQL實(shí)例。
已在對(duì)應(yīng)源PostgreSQL實(shí)例和目標(biāo)PostgreSQL實(shí)例之間建立好同步鏈路,且同步鏈路狀態(tài)已達(dá)到同步中。具體操作,請(qǐng)參見配置同步任務(wù)(舊控制臺(tái))。
配置MongoDB數(shù)據(jù)層的前提條件:
在兩個(gè)單元環(huán)境中分別已創(chuàng)建一個(gè)或多個(gè)同名MongoDB。具體操作,請(qǐng)參見創(chuàng)建MongoDB實(shí)例。
已在對(duì)應(yīng)源MongoDB實(shí)例和目標(biāo)MongoDB實(shí)例之間建立好同步鏈路,且同步鏈路狀態(tài)已達(dá)到同步中。具體操作,請(qǐng)參見配置同步任務(wù)(舊控制臺(tái))。
配置Elasticsearch數(shù)據(jù)層的前提條件:
在兩個(gè)單元環(huán)境中分別已創(chuàng)建一個(gè)或多個(gè)同名Elasticsearch。具體操作,請(qǐng)參見創(chuàng)建阿里云Elasticsearch實(shí)例。
功能入口
在左側(cè)導(dǎo)航欄選擇多活實(shí)例,進(jìn)入多活實(shí)例列表頁(yè)。
在多活實(shí)例列表頁(yè)選擇需要配置數(shù)據(jù)層的多活實(shí)例,點(diǎn)擊實(shí)例ID,進(jìn)入實(shí)例概覽頁(yè)面。
在左側(cè)導(dǎo)航欄選擇數(shù)據(jù)層配置,進(jìn)入數(shù)據(jù)層配置頁(yè)。
步驟一:創(chuàng)建數(shù)據(jù)源
在數(shù)據(jù)層配置頁(yè)面,單擊管理數(shù)據(jù)源。
在數(shù)據(jù)源列表頁(yè)面,單擊添加數(shù)據(jù)源,并配置相關(guān)參數(shù),然后單擊提交。
參數(shù)
描述
示例
數(shù)據(jù)源名稱
數(shù)據(jù)源名稱是用戶在使用MSHA的多活應(yīng)用連接的數(shù)據(jù)庫(kù),具體到數(shù)據(jù)庫(kù)維度。
杭州-商家交易庫(kù)
數(shù)據(jù)源單元
選擇需要使用的數(shù)據(jù)源單元,該單元對(duì)應(yīng)的地域應(yīng)為Redis所在的地域。
杭州中心單元
數(shù)據(jù)源類型
多活應(yīng)用連接的數(shù)據(jù)庫(kù)類型,支持的數(shù)據(jù)庫(kù)類型包括PolarDB MySQL、DRDS、MySQL、PostgreSQL、PolarDB O、Redis、PolarDB-X 2.0、MongoDB和Elasticsearch。
Redis
實(shí)例類型
數(shù)據(jù)源類型不同可選的實(shí)例類型不同,選擇不同的實(shí)例類型,所需的相關(guān)配置也不同,具體請(qǐng)根據(jù)控制臺(tái)界面指引配置。
Redis云數(shù)據(jù)庫(kù)
推送類型
在使用MSHA數(shù)據(jù)面的SDK或Agent時(shí),為應(yīng)用所使用的數(shù)據(jù)庫(kù)建立的唯一標(biāo)識(shí)。推送類型包括以下2種方式:
實(shí)例庫(kù)配置聲明:在業(yè)務(wù)代碼的數(shù)據(jù)庫(kù)鏈接配置中添加以下后綴。Redis與MongoDB數(shù)據(jù)源類型暫不支持配置該項(xiàng)。
jdbc:mysql://host:port/dbName?mshaInstanceId=${實(shí)例id}&mshaDbName=${數(shù)據(jù)庫(kù)名}
說(shuō)明將
${實(shí)例id}
和${數(shù)據(jù)庫(kù)名}
替換成管控面實(shí)際的實(shí)例ID和數(shù)據(jù)庫(kù)名。實(shí)例庫(kù)URL:業(yè)務(wù)代碼無(wú)需修改。
說(shuō)明數(shù)據(jù)源有多個(gè)JDBC-URL時(shí)以半角逗號(hào)(,)分隔。
實(shí)例庫(kù)URL
推送標(biāo)識(shí)
當(dāng)推送類型為實(shí)例URL時(shí),需要填寫推送標(biāo)識(shí)。當(dāng)數(shù)據(jù)保護(hù)規(guī)則推送ACM配置中心到數(shù)據(jù)面SDK或Agent生效時(shí),該值會(huì)作為唯一標(biāo)識(shí)來(lái)識(shí)別業(yè)務(wù)使用的不同數(shù)據(jù)源。推送標(biāo)識(shí)的填寫格式如下:
MySQL類型的格式為:
jdbc:mysql://${host_01}:${port}/${dbName},jdbc:mysql://${host_02}:${port}/${dbName}
Redis類型的格式為:
redis://${host_01}:${port},redis://${host_02}:${port}
MongoDB類型的格式為:${primaryHost}.${port}.${database}
Elasticsearch類型的格式為:http://${primaryHost}:${port}
redis://${host_01}:${port},redis://${host_02}:${port}
說(shuō)明MongoDB數(shù)據(jù)源需要填寫鑒權(quán)庫(kù)信息與部署架構(gòu)(副本集或分片集群)。
Elasticsearch數(shù)據(jù)源需要填寫版本。
創(chuàng)建數(shù)據(jù)源成功后,您可以在數(shù)據(jù)源列表頁(yè)面查看到創(chuàng)建的數(shù)據(jù)源。
可選:您還可以在數(shù)據(jù)源列表頁(yè)面進(jìn)行以下操作:
查看數(shù)據(jù)源狀態(tài):數(shù)據(jù)源最近一次更新表數(shù)據(jù)的任務(wù)執(zhí)行狀態(tài),創(chuàng)建數(shù)據(jù)源后會(huì)默認(rèn)執(zhí)行一次更新表數(shù)據(jù)任務(wù)。
數(shù)據(jù)源狀態(tài)包括以下狀態(tài):
創(chuàng)建中:完成數(shù)據(jù)源創(chuàng)建,更新表數(shù)據(jù)任務(wù)前的狀態(tài)。
正常:數(shù)據(jù)源最近一次更新表數(shù)據(jù)任務(wù)執(zhí)行成功。
加載中:數(shù)據(jù)源最近一次更新表數(shù)據(jù)任務(wù)執(zhí)行中。
加載失?。簲?shù)據(jù)源最近一次更新表數(shù)據(jù)任務(wù)執(zhí)行失敗。加載失敗后您可以在查看表中,查看失敗詳情信息。
查看數(shù)據(jù)源詳情:?jiǎn)螕?b data-tag="uicontrol" id="uicontrol-d2c-sd7-plw" class="uicontrol">操作列的詳情,查看數(shù)據(jù)源的詳細(xì)信息。
查看數(shù)據(jù)表:?jiǎn)螕?b data-tag="uicontrol" id="uicontrol-pn6-bpo-s8z" class="uicontrol">操作列的查看表,查看數(shù)據(jù)表信息、更新數(shù)據(jù)源、以及查看最近一次的更新情況。
更新數(shù)據(jù)源:?jiǎn)螕?b data-tag="uicontrol" id="uicontrol-nv5-9da-tin" class="uicontrol">操作列的更新,更新數(shù)據(jù)表的最新信息。
刪除數(shù)據(jù)源:?jiǎn)螕?b data-tag="uicontrol" id="uicontrol-3z3-sxh-dg4" class="uicontrol">操作列的刪除,然后在對(duì)話框中單擊確認(rèn)。
(可選)步驟二:添加同步任務(wù)
一個(gè)雙向同步任務(wù)包含正向同步鏈路和反向同步鏈路;一個(gè)單向同步任務(wù)只包含正向同步鏈路。
在添加同步任務(wù)前,您需要以步驟一同樣的方式再次添加一個(gè)名稱為北京-商家交易庫(kù)的數(shù)據(jù)源,作為目標(biāo)數(shù)據(jù)源。
在數(shù)據(jù)層配置頁(yè)面,單擊管理同步鏈路。
在同步鏈路列表頁(yè)面,單擊添加同步任務(wù),然后在彈出的頁(yè)面中配置相關(guān)參數(shù),并單擊提交。
參數(shù)
描述
示例
同步任務(wù)名稱
設(shè)置同步任務(wù)的名稱。
test-rds-正向
源數(shù)據(jù)源類型
多活應(yīng)用連接的數(shù)據(jù)庫(kù)類型。包括:
DRDS
MySQL
Redis
PolarDB Mysql
PolarDB-X 2.0
PostgreSQL
PolarDB O
MongoDB
Redis
源數(shù)據(jù)源單元
選擇需要使用的源數(shù)據(jù)源單元,對(duì)應(yīng)源數(shù)據(jù)源的地域。
杭州中心單元
源數(shù)據(jù)源
選擇步驟一中添加數(shù)據(jù)源名稱。
杭州-商家交易庫(kù)
目標(biāo)數(shù)據(jù)源類型
多活應(yīng)用連接的目標(biāo)數(shù)據(jù)庫(kù)類型。包括:
DRDS
MySQL
Redis
PolarDB Mysql
PolarDB-X 2.0
PostgreSQL
PolarDB O
MongoDB
Redis
目標(biāo)數(shù)據(jù)源單元
選擇需要同步的目標(biāo)數(shù)據(jù)源單元。
北京單元
目標(biāo)數(shù)據(jù)源
選擇需要同步的目標(biāo)數(shù)據(jù)源名稱。
北京-商家交易庫(kù)
同步任務(wù)類型
支持DTS(數(shù)據(jù)傳輸服務(wù))。
DTS
同步架構(gòu)
包括單向同步和雙向同步:
單向同步:在單向同步的拓?fù)渲校瑸楸U贤綌?shù)據(jù)的一致性,對(duì)目標(biāo)實(shí)例中的同步對(duì)象只進(jìn)行讀操作,不進(jìn)行寫操作。
雙向同步:目前DTS僅支持兩個(gè)數(shù)據(jù)庫(kù)之間的雙向同步。
說(shuō)明關(guān)于同步架構(gòu)的更多信息,請(qǐng)參見數(shù)據(jù)同步拓?fù)浣榻B。
雙向同步
同步任務(wù)單元
同步任務(wù)歸屬的單元,同步任務(wù)會(huì)默認(rèn)創(chuàng)建在目標(biāo)實(shí)例所在的地域。
杭州中心單元
創(chuàng)建同步任務(wù)方式
包括直接錄入和手動(dòng)創(chuàng)建的方式:
直接錄入:如果您在數(shù)據(jù)傳輸控制臺(tái)已經(jīng)創(chuàng)建一個(gè)狀態(tài)為同步中(雙向同步的反向同步鏈路狀態(tài)也為同步中)的同步任務(wù),則可以直接選擇該同步任務(wù)進(jìn)行錄入。
手動(dòng)創(chuàng)建:如果您在數(shù)據(jù)傳輸控制臺(tái)創(chuàng)建一個(gè)同步狀態(tài)為未配置(雙向同步的反向同步鏈路狀態(tài)也為未配置)的同步任務(wù),則可以錄入該同步任務(wù)后,后續(xù)再在MSHA控制臺(tái)進(jìn)行配置操作。
說(shuō)明在數(shù)據(jù)傳輸控制臺(tái)的創(chuàng)建同步任務(wù)操作,請(qǐng)參見DTS數(shù)據(jù)同步方案概覽。
說(shuō)明MongoDB數(shù)據(jù)源同步鏈路使用限制:
副本集云實(shí)例:支持手動(dòng)創(chuàng)建單向或雙向同步任務(wù),支持直接錄入單向或雙向同步任務(wù)。
副本集自建類型數(shù)據(jù)源:支持手動(dòng)創(chuàng)建單向同步任務(wù),支持直接錄入單向同步任務(wù)。
分片集群:支持直接錄入雙向同步任務(wù)。
直接錄入
同步鏈路
已錄入的同步鏈路,通過(guò)已選中的數(shù)據(jù)源可直接匹配得到
redis-同步-正向
redis-同步-反向
創(chuàng)建同步鏈路成功后,您可以在同步鏈路列表頁(yè)面查看到創(chuàng)建的同步鏈路。
可選:您還可以在同步鏈路列表頁(yè)面進(jìn)行以下操作:
查看同步鏈路信息:?jiǎn)螕?b data-tag="uicontrol" id="uicontrol-f11-dn8-duo" class="uicontrol">操作列的查看,查看同步鏈路的詳細(xì)信息。
修改同步對(duì)象:?jiǎn)螕?b data-tag="uicontrol" id="uicontrol-g6j-vtc-kpo" class="uicontrol">操作列的修改同步對(duì)象,在彈出的頁(yè)面修改同步對(duì)象。
釋放任務(wù):選擇目標(biāo)同步鏈路,單擊左下角的釋放同步任務(wù),然后在彈出的對(duì)話框中單擊確認(rèn),即可釋放該同步任務(wù)。
說(shuō)明同步任務(wù)為一組正向和反向的同步鏈路,且有數(shù)據(jù)保護(hù)規(guī)則正在進(jìn)行時(shí)則無(wú)法釋放任務(wù)。
若是雙向同步鏈路,選擇任一同步鏈路,會(huì)釋放正向和反向同步鏈路。
暫停任務(wù):選擇目標(biāo)同步鏈路,單擊左下角的暫停同步任務(wù),然后在彈出的對(duì)話框中單擊確認(rèn),即可暫停該同步任務(wù)。
啟動(dòng)任務(wù):選擇目標(biāo)同步鏈路,單擊左下角的啟動(dòng)同步任務(wù),然后在彈出的對(duì)話框中單擊確認(rèn),即可啟動(dòng)該同步任務(wù)。
更新同步狀態(tài):異步更新當(dāng)前同步鏈路列表頁(yè)的同步狀態(tài)。
步驟三:創(chuàng)建數(shù)據(jù)保護(hù)規(guī)則
在數(shù)據(jù)層配置頁(yè)面,單擊創(chuàng)建數(shù)據(jù)保護(hù)規(guī)則,然后在彈出的頁(yè)面中配置相關(guān)參數(shù),并單擊提交。
參數(shù) | 描述 | 示例 |
數(shù)據(jù)保護(hù)規(guī)則名稱 | 設(shè)置保護(hù)規(guī)則的名稱。 | redis保護(hù)規(guī)則 |
架構(gòu)類型 | 異地應(yīng)用雙活架構(gòu)下默認(rèn)異地應(yīng)用雙活。 | 異地應(yīng)用雙活 |
同步延遲策略 | 同步延遲策略在執(zhí)行切流時(shí)生效:
| 禁止寫入 |
數(shù)據(jù)源信息 | 單擊選擇數(shù)據(jù)源,在彈出的對(duì)話框中選擇需要保護(hù)的2條數(shù)據(jù)源且最多選擇2條,并單擊確認(rèn)。 在選擇數(shù)據(jù)源后,您可以單擊列表中的查看全部灰度IP,輸入應(yīng)用所在的ECS的私網(wǎng)IP。多個(gè)IP請(qǐng)用半角逗號(hào)(,)分隔。 |
|
讀寫策略 | 必選,包括:
| 讀寫中心 |
附加寫策略 | 可選,默認(rèn)關(guān)閉。包括:
說(shuō)明 僅Redis數(shù)據(jù)源類型支持配置該項(xiàng)。 | 同步寫對(duì)端 |
附加讀策略 | 可選,默認(rèn)關(guān)閉。打開讀失敗后讀對(duì)端開關(guān)后,如果在當(dāng)前數(shù)據(jù)庫(kù)未讀取到數(shù)據(jù),系統(tǒng)將自動(dòng)讀取對(duì)端的數(shù)據(jù)庫(kù)。 說(shuō)明 僅Redis數(shù)據(jù)源類型支持配置該項(xiàng)。 | 關(guān)閉 |
同步鏈路 | 單擊匹配已有數(shù)據(jù)選擇匹配的同步鏈路。 | 商家交易同步鏈路 |
創(chuàng)建數(shù)據(jù)保護(hù)規(guī)則成功后,您可以在數(shù)據(jù)層配置頁(yè)面查看到創(chuàng)建的保護(hù)規(guī)則。
在讀寫策略列,將鼠標(biāo)懸停在中心或者查看上,您可以查看該規(guī)則具體的讀寫策略和附加策略。
后續(xù)操作
您還可以在數(shù)據(jù)層配置頁(yè)面進(jìn)行以下操作:
查看基礎(chǔ)數(shù)據(jù)
在基礎(chǔ)數(shù)據(jù)概覽區(qū)域,您可以分別查看數(shù)據(jù)源、同步鏈路和數(shù)據(jù)保護(hù)規(guī)則的總量、正常數(shù)量和異常數(shù)量。
數(shù)據(jù)類型 | 正常數(shù)量 | 異常數(shù)量 |
數(shù)據(jù)源 | 數(shù)據(jù)源狀態(tài)為正常的數(shù)量。 | 數(shù)據(jù)源狀態(tài)不為正常的數(shù)量。 |
同步鏈路 | 同步鏈路狀態(tài)為同步中的數(shù)量。 | 同步鏈路狀態(tài)不為同步中的數(shù)量。 |
數(shù)據(jù)保護(hù)規(guī)則 | 數(shù)據(jù)保護(hù)規(guī)則狀態(tài)為生效的數(shù)量。 | 數(shù)據(jù)保護(hù)規(guī)則狀態(tài)沒生效的數(shù)量。 |
查看數(shù)據(jù)保護(hù)規(guī)則狀態(tài)
在數(shù)據(jù)保護(hù)規(guī)則列表的生效狀態(tài)列,您可以查看該規(guī)則的狀態(tài)。
草稿:新建數(shù)據(jù)保護(hù)規(guī)則的狀態(tài),或者回滾灰度推送操作后的狀態(tài)。
灰度生效:灰度推送操作成功后的狀態(tài)。
生效:全量推送操作成功后的狀態(tài)。
推送操作
推送灰度規(guī)則:選中目標(biāo)規(guī)則,單擊頁(yè)面下方的推送灰度規(guī)則,數(shù)據(jù)保護(hù)規(guī)則的內(nèi)容灰度生效到數(shù)據(jù)面的SDK和Agent?;叶鹊姆秶ㄟ^(guò)在創(chuàng)建數(shù)據(jù)保護(hù)規(guī)則上的灰度IP控制,灰度IP為用戶應(yīng)用所在的ECS的私網(wǎng)IP。
說(shuō)明僅草稿狀態(tài)下的目標(biāo)規(guī)則才可以執(zhí)行灰度推送。
推送全量規(guī)則:選中目標(biāo)規(guī)則,單擊頁(yè)面下方的推送全量規(guī)則,數(shù)據(jù)保護(hù)規(guī)則的內(nèi)容全量生效到數(shù)據(jù)面的SDK和Agent。
刪除灰度規(guī)則:選中目標(biāo)規(guī)則,單擊頁(yè)面下方的刪除灰度規(guī)則,將正在灰度生效的數(shù)據(jù)保護(hù)規(guī)則取消生效。
刪除全量規(guī)則:選中目標(biāo)規(guī)則,單擊頁(yè)面下方的刪除全量規(guī)則,將正在全量生效的數(shù)據(jù)保護(hù)規(guī)則取消生效。
降級(jí):選中目標(biāo)規(guī)則,單擊頁(yè)面下方的降級(jí),將數(shù)據(jù)保護(hù)規(guī)則控制下的應(yīng)用實(shí)例執(zhí)行降級(jí),繞過(guò)多活邏輯。
取消降級(jí):?jiǎn)螕繇?yè)面下方的取消降級(jí),將數(shù)據(jù)保護(hù)規(guī)則控制下的應(yīng)用實(shí)例取消降級(jí)。
其他操作
在數(shù)據(jù)保護(hù)規(guī)則列表的操作列,您可以執(zhí)行以下操作。
查看或編輯數(shù)據(jù)保護(hù)規(guī)則詳情:?jiǎn)螕?b data-tag="uicontrol" id="uicontrol-q73-2z3-ka7" class="uicontrol">操作列的規(guī)則詳情,查看數(shù)據(jù)保護(hù)規(guī)則的詳細(xì)信息,也可以編輯部分信息,然后單擊提交。
推送歷史:?jiǎn)螕?b data-tag="uicontrol" id="uicontrol-qff-nbr-ntc" class="uicontrol">操作列的推送歷史,在推送歷史頁(yè)面,單擊操作列的查看,查看數(shù)據(jù)保護(hù)規(guī)則歷史推送內(nèi)容。
切換歷史:?jiǎn)螕?b data-tag="uicontrol" id="uicontrol-qvj-4rk-mes" class="uicontrol">操作列的切換歷史,您可以查看數(shù)據(jù)保護(hù)規(guī)則的歷史切換詳情。
刪除規(guī)則:?jiǎn)螕?b data-tag="uicontrol" id="uicontrol-s1h-4ay-u60" class="uicontrol">操作列的刪除,您可以刪除該規(guī)則。