華為云推出高可用文檔數(shù)據(jù)庫,助陣電商用戶應(yīng)對購物“劫”
作為全民狂歡的代名詞,購物節(jié)早已成為各電商平臺的重要營銷手段。雙十一、雙十二、618、418、419,商家們有節(jié)必過,沒節(jié)造節(jié)也要過。然而,每次活動對 IT 支撐而言,都無異于一次“渡劫”。一旦出現(xiàn)故障,不但所有準備前功盡棄、心血付諸流水, 而且造成的經(jīng)濟損失也不可估量。
小故障變大問題,購物節(jié)成購物“劫”
一年一度的 C 站購物節(jié)即將開始,小美提前幾天就選了一批心儀已久的美物。成功加入購物車后,坐等晚上 0 點搶購下單。就在小美準備付款時,C 站網(wǎng)頁無法響應(yīng),嘗試多次無果后,小美失望的放棄了此次購物。同一時間,小美的朋友圈和幾個聊天群里也在討論 C 站活動無法購買的問題,不少人憤憤表示卸載軟件、再也不上當了。
而另一邊,C 站的工程師們加班加點,正在火急火燎的解決這項事故。早在建設(shè)網(wǎng)站之前,C 站工程師為了應(yīng)對日益增長的用戶數(shù)據(jù),使用了擴容最靈活的文檔數(shù)據(jù)庫 MongoDB 存儲數(shù)據(jù),以確保流量高峰期的高并發(fā)場景下,數(shù)據(jù)達到節(jié)點存儲極限時可以橫向擴容。
萬萬沒有想到,MongoDB 這次竟然出現(xiàn)了兩個節(jié)點故障,導致數(shù)據(jù)庫不可用。火速解決了節(jié)點故障,卻發(fā)現(xiàn)當前主節(jié)點數(shù)據(jù)太舊,無法追趕到其他備節(jié)點。于是只能經(jīng)過一番手動拷貝數(shù)據(jù),將備節(jié)點上的數(shù)據(jù)復制到新的主節(jié)點上,***重啟節(jié)點。
數(shù)個小時之后,C 站的網(wǎng)頁終于可以正常訪問了。然而平臺 1 小時搶購活動卻已經(jīng)結(jié)束,因為這幾個小時的業(yè)務(wù)中斷,C 站損失了數(shù)以萬計個訂單,金額更是不可估量。
C 站的 CTO(***技術(shù)官)王總認真反思了這次事故,總結(jié)出兩個問題:
- MongoDB 的三副本雖然在大多數(shù)情況下可靠,但也不排除有兩個節(jié)點故障,導致業(yè)務(wù)中斷的可能。
- 新選出的主節(jié)點由于數(shù)據(jù)太舊,需要人工干預各節(jié)點上的數(shù)據(jù)遷移,這勢必增加系統(tǒng)的不可用時間。
問題雖然找到了,但如何解決又成了 C 站新的難題。
MongoDB 架構(gòu)采用的是存儲與計算混合的典型分布式架構(gòu),每個分片需要三個節(jié)點組成一個副本集,提供多副本冗余。該架構(gòu)下,每個分片固定 3 節(jié)點復制關(guān)系,不能容忍任意2 節(jié)點以上的故障。而且節(jié)點擴容時需要伴隨這數(shù)據(jù)遷移進行,因此當數(shù)據(jù)量越大時,擴容耗時就越長。
MongoDB 分布式架構(gòu)
事實上,C 站的難題,也正是大量 MongoDB 用戶面臨的挑戰(zhàn)。2017 年 MongoDB 年終大會上,來自云之家的 DBA 分享了一段他的經(jīng)歷,對存儲有 150T 數(shù)據(jù)的 MongoDB 數(shù)據(jù)庫擴容,耗時接近一個月。
華為云 MongoDB 社區(qū)增強版,保障平臺成功“渡劫”
為助力電商平臺輕松應(yīng)對各購物“劫”,華為云推出了 MongoDB 社區(qū)增強版,使用計算和存儲分離的新架構(gòu),實現(xiàn)各節(jié)點共享存儲池存儲數(shù)據(jù)。ShardServer(分片)單節(jié)點部署,擺脫計算節(jié)點三副本部署的束縛。
不但支持任意 N-1個節(jié)點故障,而且橫向彈性伸縮效率提升 100 倍以上,***解決 C 站為代表的電商平臺購物節(jié)風險問題。
華為 MongoDB 社區(qū)增強版計算存儲分離架構(gòu)示意圖
計算節(jié)點互為主備,保證業(yè)務(wù)不中斷
由于計算節(jié)點共享存儲池,不存在數(shù)據(jù)不一致的情況,其中一個節(jié)點故障,恢復后重新加入集群時無需追趕數(shù)據(jù)。節(jié)點互為主備,其中一個節(jié)點故障,其他任意節(jié)點均可重新加載存儲池中故障節(jié)點的數(shù)據(jù),接替故障節(jié)點的工作,保證業(yè)務(wù)不中斷。
此外,MongoDB 社區(qū)增強版還添加了進程監(jiān)控模塊,在進程故障時能自動拉起進程,從故障檢測到故障恢復,全程無需人工干預。
支持任意 N-1 個節(jié)點故障,
與傳統(tǒng)副本集部署不同的是,MongoDB 社區(qū)增強版中的每個計算節(jié)點均提供讀寫 IO,因此在有 N 個計算節(jié)點的 MongoDB 集群中,MongoDB社區(qū)增強版集群在計算能力允許的情況下,可以容忍N-1個節(jié)點故障。
2018 華為全聯(lián)接大會將于10月份在上海召開,屆時將首發(fā)華為AI戰(zhàn)略和全棧全場景的解決方案,并攜合作伙伴帶來更多諸如“秦渲云”這樣AI、云、大數(shù)據(jù)、5G、IoT、視頻等在各行業(yè)的創(chuàng)新與實踐,惠及更多開發(fā)者人群,“+智能,見未來”我們拭目以待。
文末彩蛋:華為云產(chǎn)品活動月,數(shù)據(jù)庫產(chǎn)品全場 3.5 折起,安全產(chǎn)品全場低至 1 折;不限新老用戶,下單即享折扣!
更多數(shù)據(jù)庫引擎免費試用,詳情請移步官網(wǎng):
https://activity.huaweicloud.com/free_test/index.htm
華為云 MongoDB 社區(qū)增強版免費試用請點擊:
https://activity.huaweicloud.com/dfv_mongo/index.html
HUAWEI CONNECT 2018作為華為自辦的面向ICT產(chǎn)業(yè)的全球性年度旗艦大會,將于2018年10月10日-12日在上海隆重舉行。本屆大會以“+智能,見未來”為主題,旨在搭建一個開放、合作、共享的平臺,與客戶伙伴一起共同探討如何把握新機遇創(chuàng)造智能未來。欲了解更多詳情,請參閱:
https://www.huawei.com/cn/press-events/events/huaweiconnect2018