什么是異地雙活及應(yīng)用場景

依托于阿里云高速通道專線、事件總線EventBridge和MSHA(Multi-Site High Availability)多活容災(zāi)平臺,消息隊列RocketMQ版提供異地雙活功能,通過跨實例間數(shù)據(jù)的雙向同步和業(yè)務(wù)切流能力,實現(xiàn)業(yè)務(wù)恢復(fù)和故障恢復(fù)解耦,保障故障場景下的業(yè)務(wù)連續(xù)性。本文介紹異地雙活的概念、應(yīng)用場景、功能優(yōu)勢、使用限制和計費說明。
什么是異地雙活
多活容災(zāi)MSHA是在阿?巴巴電商業(yè)務(wù)環(huán)境演進出來的多活容災(zāi)架構(gòu)解決?案,可以將業(yè)務(wù)恢復(fù)和故障恢復(fù)解耦?;陟`活的流量規(guī)則調(diào)度、跨域跨云管控、數(shù)據(jù)保護等能力,實現(xiàn)故障場景下的業(yè)務(wù)快速切換及恢復(fù)。
消息隊列RocketMQ版依賴于阿里云高速通道專線、事件總線EventBridge和多活容災(zāi)MSHA實現(xiàn)跨地域?qū)嵗g的消息數(shù)據(jù)雙向同步。和傳統(tǒng)容災(zāi)不同的是,異地雙活方案中,部署在不同數(shù)據(jù)中心的消息隊列RocketMQ版并行地為業(yè)務(wù)訪問提供服務(wù),實現(xiàn)了資源的充分利用,避免一個或多個備份中心處于閑置狀態(tài)。當(dāng)一個數(shù)據(jù)中心發(fā)生故障而另一個數(shù)據(jù)中心正常運行時,可通過MSHA實現(xiàn)流量的切換,提供正常的消息服務(wù),實現(xiàn)用戶對故障無感知。
異地雙活功能不僅解決了容災(zāi)本身問題,還提升了業(yè)務(wù)連續(xù)性,并且實現(xiàn)了資源的異地擴展。
消息隊列RocketMQ版的異地雙活具體實現(xiàn)如下:

杭州單元和上海單元分別部署了一套完整的業(yè)務(wù)系統(tǒng)。
MSHA接入層按照數(shù)據(jù)分流規(guī)則將業(yè)務(wù)數(shù)據(jù)路由到兩個業(yè)務(wù)單元,杭州單元和上海單元的應(yīng)用系統(tǒng)和消息隊列RocketMQ版Broker集群各自處理對應(yīng)地域的業(yè)務(wù)。
兩個單元的Broker集群配置了異地雙活功能,依賴于事件總線EventBridge提供的事件路由能力,以及云企業(yè)網(wǎng)CEN(Cloud Enterprise Network)提供的專有網(wǎng)絡(luò)間的私網(wǎng)通信通道,Broker集群A和Broker集群B間的數(shù)據(jù)實現(xiàn)了雙向同步,包括Topic數(shù)據(jù)、Group數(shù)據(jù)及消費位點等信息。正常情況下,杭州單元和上海單元只負責(zé)各自單元的業(yè)務(wù),并且同時將各自單元的消息數(shù)據(jù)同步到對方單元的集群中進行容災(zāi)備份。






假設(shè)杭州單元發(fā)生災(zāi)害,整個業(yè)務(wù)系統(tǒng)出現(xiàn)故障,此時通過MSHA切流操作將整個杭州的業(yè)務(wù)切到上海單元,因為配置了異地雙活,上海單元的Broker集群存儲了杭州單元的業(yè)務(wù)數(shù)據(jù),可以繼續(xù)處理未完成的消息數(shù)據(jù)。在保證業(yè)務(wù)不中斷的前提下排查故障并修復(fù),做到先恢復(fù)業(yè)務(wù)再恢復(fù)故障。

當(dāng)杭州單元故障恢復(fù)后,通過回切流量,將杭州單元的業(yè)務(wù)重新切回到杭州單元的系統(tǒng)處理,整個過程用戶不感知故障,不影響用戶業(yè)務(wù)體驗。

使用限制
實例類型限制:異地雙活功能僅企業(yè)鉑金版實例支持,標準版實例不支持。

地域限制:目前僅華東1(杭州)、華東2(上海)、華北2(北京)和華南1(深圳)地域支持使用異地雙活功能,并且使用前您需要提交工單申請,其他地域暫不支持該功能。

計費說明
異地雙活為消息隊列RocketMQ版的高級功能。若您開通了異地雙活功能,消息隊列RocketMQ版會按照包年包月方式進行收費;未開通則不收取異地雙活功能費用。

應(yīng)用場景
異地雙活功能適用于以下典型業(yè)務(wù)場景:

按地域劃分單元的業(yè)務(wù)場景,如物流業(yè)務(wù)??梢酝ㄟ^物流訂單的地域?qū)I(yè)務(wù)進行劃分,將業(yè)務(wù)引流到不同地域的生產(chǎn)中心同時處理,提高資源利用率和業(yè)務(wù)并發(fā)度。

對業(yè)務(wù)數(shù)據(jù)可靠性有嚴格要求的業(yè)務(wù)場景,如金融證券等。當(dāng)系統(tǒng)出現(xiàn)故障會對交易結(jié)果產(chǎn)生較大影響,通過異地雙活可以將業(yè)務(wù)快速切換到容災(zāi)站點,并且根據(jù)同步的數(shù)據(jù)繼續(xù)處理未完成的消息。

功能優(yōu)勢
可用性

和傳統(tǒng)容災(zāi)方案相比,異地雙活方案中所有生產(chǎn)中心數(shù)據(jù)實現(xiàn)雙向同步,并且均可對外提供服務(wù),各中心分擔(dān)業(yè)務(wù)流量,提高了資源使用率。

故障快速恢復(fù)

異地雙活功能夠有效保障業(yè)務(wù)連續(xù)性。當(dāng)其中一個生產(chǎn)中心發(fā)生故障,區(qū)別于傳統(tǒng)的解決思路,不是去排查、處理和修復(fù)故障,而是立即使用切流將業(yè)務(wù)切換到其他生產(chǎn)中心,保證業(yè)務(wù)的連續(xù)性,將業(yè)務(wù)恢復(fù)和故障恢復(fù)解耦。

異地容量擴容

業(yè)務(wù)高速發(fā)展,受限于單地有限資源,也存在資源存儲、計算網(wǎng)絡(luò)瓶頸等問題。在消息隊列RocketMQ版水平拓展能力的支撐下,使業(yè)務(wù)具備其他機房或者其它地域快速擴建的特性,減少成本浪費。




作者:碼農(nóng)編程進階筆記


歡迎關(guān)注微信公眾號 :碼農(nóng)編程進階筆記