程序要一定要明白的架構(gòu)-三地五中心(2)

上篇文章我們總結(jié)了一下同城雙活袜炕、異地多活、兩地三中心等一些部署架構(gòu)初家,那么這篇文章我來發(fā)表一下我對三地五中心的理解偎窘。

我們上篇文章講過兩地三中心這個架構(gòu)乌助,如下圖:


image.png
image.png

這種架構(gòu)具備容災(zāi)能力,比如生產(chǎn)數(shù)據(jù)中心停電了陌知,那么可以把所有流量都切到同城災(zāi)備中心或異地災(zāi)備中心他托,那么現(xiàn)在的問題是假如真到了停電的那一天,你敢把所有的流量都切到災(zāi)備中心去嗎仆葡?
上篇文章說了赏参,災(zāi)備中心它主要的功能是作為生產(chǎn)數(shù)據(jù)中心的一個備份,所以它并沒有如同生產(chǎn)數(shù)據(jù)中心一樣不停的在對外提供服務(wù)沿盅,那么就有問題了把篓,災(zāi)備相當(dāng)于一個新人镇辉,一個一直在模仿大哥的一個新人魔市,現(xiàn)在大哥受傷了捆毫,按道理是應(yīng)該小弟頂上豆瘫,但是小弟還是個新人评腺,硬頂上去是不是很有可能會出錯溉委?也就是說:

  • 第一愉豺,不能保證災(zāi)備中心有能力接管線上所有的用戶流量搔耕,可能剛已接收災(zāi)備中心被壓垮费彼,或者出現(xiàn)其他各種各樣預(yù)估不到的錯誤窒悔;
  • 第二,如果生產(chǎn)數(shù)據(jù)中心接收了用戶的寫請求敌买,還沒來得及同步到災(zāi)備中心简珠,這個時候停電了,這種情況下虹钮,也不能直接把用戶流量切到災(zāi)備中心聋庵。

所以基于上面的分析,并不是說災(zāi)備中心一定不能頂上芙粱,只是在頂上之前可能還要做很多其他的檢查和準(zhǔn)備祭玉,這個時間是不確定的,至少不會很快...春畔。

那么問題來了脱货,該怎么辦?

首先對于上面列出來的兩點(diǎn)中的第一點(diǎn)律姨,如果我們能夠讓災(zāi)備中心不再僅僅只能用來做災(zāi)備振峻,還能和生產(chǎn)數(shù)據(jù)中心一樣正常的對外提供服務(wù)呢?如下圖:


image.png
image.png

可以看到上面的架構(gòu)圖:

  • 不再區(qū)分生產(chǎn)數(shù)據(jù)中心和災(zāi)備數(shù)據(jù)中心择份,只有數(shù)據(jù)中心扣孟,而且數(shù)據(jù)中心之間相互備份數(shù)據(jù),保證每個數(shù)據(jù)中心都是全量數(shù)據(jù)荣赶。
  • 用戶可以在任意一個數(shù)據(jù)中心上進(jìn)行讀寫操作凤价。

好鸽斟,首先我們不管這種架構(gòu)能不能實(shí)現(xiàn),至少它的好處是非常明顯的:

  1. 每個數(shù)據(jù)中心一直在對外提供服務(wù)(不是一個新手)利诺,所以當(dāng)一個數(shù)據(jù)中心停電后富蓄,直接把用戶流量切到另外一個數(shù)據(jù)中心也是問題不大的。
  2. 用戶可以就近訪問數(shù)據(jù)中心慢逾,這樣用戶的體驗(yàn)更好立倍,并且整個架構(gòu)的流量也比較平均。

優(yōu)點(diǎn)很明顯氛改,如果能實(shí)現(xiàn)就再好不過了帐萎,那么這種架構(gòu)實(shí)現(xiàn)起來最重要的一點(diǎn)就是:用戶同時向不同數(shù)據(jù)中心寫入數(shù)據(jù),數(shù)據(jù)中心雙向同步數(shù)據(jù)時胜卤,如果出現(xiàn)沖突該如何解決疆导?
那么這個問題,目前阿里和螞蟻金服的解決辦法是:將用戶按某一個規(guī)則進(jìn)行分組葛躏,每組用戶寫入數(shù)據(jù)時只能寫入到指定的數(shù)據(jù)中心澈段,相當(dāng)于用戶與數(shù)據(jù)中心綁定在一起了,這樣保證了數(shù)據(jù)中心在雙向同步之前數(shù)據(jù)是不會沖突的舰攒,因?yàn)榘从脩舴纸M了败富,不同用戶的數(shù)據(jù)不會沖突。
當(dāng)然思路非常簡單摩窃,但是實(shí)現(xiàn)起來肯定是非常麻煩的兽叮,但是思路肯定是可以的,阿里也用實(shí)踐證明了猾愿,我們先把上面的架構(gòu)稍微完善一下:

image.png
image.png

用戶使用網(wǎng)站時鹦聪,由運(yùn)營商網(wǎng)絡(luò)或CDN選擇最近的機(jī)房,機(jī)房內(nèi)部署一個負(fù)載均衡蒂秘,由這個負(fù)載均衡最終判斷用戶屬于機(jī)房(前文中的數(shù)據(jù)中心)泽本,也就是可能出現(xiàn),用戶在注冊時在北京姻僧,那么他的uid就和北京某個機(jī)房綁定了规丽,那么當(dāng)這個用戶在上海使用時,會由上海的負(fù)載均衡按照用戶分組規(guī)則將請求轉(zhuǎn)發(fā)到北京綁定的那個機(jī)房去(當(dāng)然并不是所有請求撇贺,比如讀請求肯定可以直接在上海機(jī)房進(jìn)行讀取赌莺,所以具體的實(shí)現(xiàn)都要看業(yè)務(wù)怎么實(shí)現(xiàn)了,以及負(fù)載均衡具體的配置显熏,這里只是把最簡單易懂的思路說一下)雄嚣。

所以,我們現(xiàn)在可以

  • 假設(shè)北京機(jī)房1應(yīng)用程序或數(shù)據(jù)庫對應(yīng)的機(jī)器停電了喘蟆,那么我們可以調(diào)整負(fù)載均衡是原本屬于這個機(jī)房的用戶流量轉(zhuǎn)移到機(jī)房2去缓升,注意這里不要有疑問,將用戶進(jìn)行分組是為了防止用戶同時寫兩個數(shù)據(jù)庫發(fā)生沖突蕴轨,那么現(xiàn)在機(jī)房1里其實(shí)已經(jīng)不能寫入數(shù)據(jù)了港谊,所以將流量遷移到機(jī)房2是沒有問題的。
  • 假設(shè)北京機(jī)房1整個停電了橙弱,那么可以通過運(yùn)營商網(wǎng)絡(luò)或CDN將流量遷移到北京機(jī)房2歧寺。
  • 假設(shè)北京停電了,那么一樣可以將流量遷移到上海棘脐。

這個架構(gòu)中最重要的其實(shí)就是用戶分組斜筐,所以包括我們的應(yīng)用程序、數(shù)據(jù)庫負(fù)載均衡蛀缝、數(shù)據(jù)庫分表等等都需要按用戶進(jìn)行分組顷链,我們要保證針對同一個用戶的請求與操作都在同一個機(jī)房內(nèi),不去跨機(jī)房屈梁,這樣才是最快的嗤练,這就是單元化

那么上面這個架構(gòu)實(shí)際上就是一個高級版的“兩地三中心”在讶,只是這種單元化架構(gòu)我們可以任意去擴(kuò)展(只要你足夠有錢煞抬,因?yàn)榇钜惶兹渲玫臄?shù)據(jù)中心是需要很高成本的),比如你在上海在增加一個數(shù)據(jù)中心构哺,在杭州也增加一個革答,那么就如下圖:


image.png
image.png

這就叫三地五中心。

市面上淺顯的講述三地五中心的文章不多曙强,希望這篇文章能給你幫助残拐,當(dāng)然我也是參考了其他文章有了自己的理解,如果錯誤的地方歡迎大家指正旗扑。

相信大家不喜歡在小小的手機(jī)屏幕上還看到一大塊的代碼蹦骑,閱讀體驗(yàn)不好,所以我寫作的風(fēng)格會文字偏多一點(diǎn)臀防。如果覺得有所收獲就給個小小的贊吧眠菇。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市袱衷,隨后出現(xiàn)的幾起案子捎废,更是在濱河造成了極大的恐慌,老刑警劉巖致燥,帶你破解...
    沈念sama閱讀 221,273評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件登疗,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)辐益,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評論 3 398
  • 文/潘曉璐 我一進(jìn)店門断傲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人智政,你說我怎么就攤上這事认罩。” “怎么了续捂?”我有些...
    開封第一講書人閱讀 167,709評論 0 360
  • 文/不壞的土叔 我叫張陵垦垂,是天一觀的道長。 經(jīng)常有香客問我牙瓢,道長劫拗,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,520評論 1 296
  • 正文 為了忘掉前任矾克,我火速辦了婚禮页慷,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘聂渊。我一直安慰自己差购,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,515評論 6 397
  • 文/花漫 我一把揭開白布汉嗽。 她就那樣靜靜地躺著欲逃,像睡著了一般。 火紅的嫁衣襯著肌膚如雪饼暑。 梳的紋絲不亂的頭發(fā)上稳析,一...
    開封第一講書人閱讀 52,158評論 1 308
  • 那天,我揣著相機(jī)與錄音弓叛,去河邊找鬼彰居。 笑死,一個胖子當(dāng)著我的面吹牛撰筷,可吹牛的內(nèi)容都是我干的陈惰。 我是一名探鬼主播,決...
    沈念sama閱讀 40,755評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼毕籽,長吁一口氣:“原來是場噩夢啊……” “哼抬闯!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起关筒,我...
    開封第一講書人閱讀 39,660評論 0 276
  • 序言:老撾萬榮一對情侶失蹤溶握,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蒸播,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體睡榆,經(jīng)...
    沈念sama閱讀 46,203評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡萍肆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,287評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了胀屿。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片塘揣。...
    茶點(diǎn)故事閱讀 40,427評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖碉纳,靈堂內(nèi)的尸體忽然破棺而出勿负,到底是詐尸還是另有隱情馏艾,我是刑警寧澤劳曹,帶...
    沈念sama閱讀 36,122評論 5 349
  • 正文 年R本政府宣布,位于F島的核電站琅摩,受9級特大地震影響铁孵,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜房资,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,801評論 3 333
  • 文/蒙蒙 一蜕劝、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧轰异,春花似錦岖沛、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至牙肝,卻和暖如春唉俗,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背配椭。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工虫溜, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人股缸。 一個月前我還...
    沈念sama閱讀 48,808評論 3 376
  • 正文 我出身青樓衡楞,卻偏偏與公主長得像,于是被迫代替她去往敵國和親敦姻。 傳聞我的和親對象是個殘疾皇子瘾境,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,440評論 2 359

推薦閱讀更多精彩內(nèi)容