作者:上海小胖
作為世界前十十個全球零售品牌,擁有1.7億活躍買家和10億在線市場,eBay無法承受系統(tǒng)停機帶來的損失。這就是為什么公司依靠MongoDB作為其核心企業(yè)數(shù)據(jù)平臺標準之一,為運行ebay.com的多個面向客戶的應(yīng)用程序提供支持。
在今年的MongoDB全球大會上,eBay的首席NoSQL DBA曲峰提供了彈性應(yīng)用程序的實用設(shè)計模式?— 他的團隊開發(fā)的一套支持企業(yè)級MongoDB部署的架構(gòu)藍圖。
曲先生開始討論多年來可用性概念的變化。過去,網(wǎng)站可以接受每周維護的預(yù)定停機時間。隨著當前服務(wù)的全球化,用戶或業(yè)務(wù)都不會接受如此頻繁的停機!此外,大多數(shù)公司現(xiàn)在在商業(yè)硬件平臺上構(gòu)建其服務(wù),而不是以前的 Sun Solaris / Sparc服務(wù)器。雖然商業(yè)硬件的成本要低得多,但是它也經(jīng)常故障。
這兩個因素從根本上改變了工程團隊如何考慮可用性,并且引導eBay創(chuàng)建其“彈性設(shè)計模式”,以建立最大化平均故障時間(Mean Time To Failure,MTTF)并最大限度地減少平均恢復(fù)時間(Mean Time To Recovery,MTTR)的數(shù)據(jù)庫最佳實踐。
為了構(gòu)建應(yīng)用程序,eBay開發(fā)人員可以從五個公認的數(shù)據(jù)庫標準中進行選擇。 除了MongoDB,團隊還可以選擇使用Oracle或MySQL關(guān)系數(shù)據(jù)庫和兩個NoSQL數(shù)據(jù)庫。 曲先生的DBA團隊為適當?shù)臄?shù)據(jù)庫選擇提供指導,根據(jù)應(yīng)用程序的數(shù)據(jù)訪問模式、用戶負載、數(shù)據(jù)類型等進行選擇。
eBay目前運行超過3000個非關(guān)系型數(shù)據(jù)庫實例,為一系列應(yīng)用程序提供支持,可在其間管理數(shù)PB數(shù)據(jù)。 在過去,Oracle是“記錄系統(tǒng)”,而非關(guān)系型數(shù)據(jù)庫則處理“參與系統(tǒng)”中使用的臨時數(shù)據(jù)。 然而,非關(guān)系型數(shù)據(jù)庫環(huán)境已經(jīng)成熟。通過一致的時間點備份和恢復(fù),MongoDB現(xiàn)在也在eBay上服務(wù)于記錄系統(tǒng)的用例。
雖然eBay的所有非關(guān)系數(shù)據(jù)庫選擇都提供了內(nèi)置的故障恢復(fù)能力,但它們可以使不同的設(shè)計影響應(yīng)用程序的行為。DBA團隊在六個維度上評估這些差異:可用性、一致性、持久性、可恢復(fù)性、可擴展性和性能。例如,使用點對點、無主設(shè)計的NoSQL數(shù)據(jù)庫具有昂貴的數(shù)據(jù)修復(fù)和重新平衡過程,必須在節(jié)點發(fā)生故障之后啟動。此重新平衡過程會影響應(yīng)用程序吞吐量和延遲,并可能導致連接堆疊,因為客戶端等待恢復(fù),這可能導致應(yīng)用程序停機。為了減輕這些影響,eBay不得不將最初在Oracle上開發(fā)的應(yīng)用級產(chǎn)品分層在這些無數(shù)據(jù)庫之上。這種方法使DBA團隊能夠?qū)⒏蟮募悍殖梢幌盗凶蛹海瑥亩鴮⒅匦缕胶忾_銷與較小的一組節(jié)點隔離開來,同時只影響了一小部分查詢。eBay DBA團隊構(gòu)建其彈性設(shè)計模式是針對這些不同類型的數(shù)據(jù)庫行為。
曲先生介紹了eBay的“MongoDB彈性設(shè)計模式”,如圖1所示。
圖1:MongoDB恢復(fù)架構(gòu)的eBay設(shè)計模式(圖片由eBay的MongoDB世界大會演示提供)
在這種設(shè)計模式中,一個7節(jié)點的MongoDB副本集遍布eBay的三個美國數(shù)據(jù)中心。此模式可確保在主數(shù)據(jù)中心發(fā)生故障的情況下,數(shù)據(jù)庫集群可以通過在剩余的數(shù)據(jù)中心之間建立一個仲裁來保持可用性。MongoDB的副本集成員可以被分配選舉優(yōu)先級,以控制哪些Slave成員被認為是在Primary成員失敗時的晉升候選人。例如,如果副本集Primary成員失敗,則DC1本地的節(jié)點將被優(yōu)先選擇。只有整個DC1遭受中斷,DC2中的復(fù)制集成員才會被認為可以進行選舉,根據(jù)哪個節(jié)點已經(jīng)執(zhí)行最近的寫操作選擇新的Primary成員。 可以通過使用MongoDB的?majority write concern來擴展這種設(shè)計模式,以使得能夠跨數(shù)據(jù)中心持久的寫入。
標準MongoDB設(shè)計模式被用作eBay的“閱讀強化/高可用讀取模式”的基礎(chǔ),該演示文稿用于為eBay產(chǎn)品目錄提供支持。對于目錄負載,MongoDB副本集可以擴展到50個成員,為大并發(fā)量的數(shù)據(jù)分發(fā)提供了讀取的可擴展性和恢復(fù)能力。
對于更多的寫入密集型負載,eBay開發(fā)出了“極高讀/寫模式”,該模式在其美國數(shù)據(jù)中心部署了一個分布式的MongoDB集群。
圖2:MongoDB極高讀/寫模式的eBay設(shè)計模式(圖片由eBay的MongoDB世界演示提供)
其次,eBay開發(fā)人員可以使用特定的MongoDB寫入和讀取配置來設(shè)計模式,以調(diào)整最佳滿足不同應(yīng)用需求的持久性和一致性級別。
曲先生指出,隨著近期的產(chǎn)品功能增多,MongoDB正在越來越滿足更廣泛的應(yīng)用需求:
對MongoDB 3.4添加區(qū)域分片使得eBay能夠為需要跨多個數(shù)據(jù)中心提供分布式、永久寫入可用性的應(yīng)用程序提供服務(wù)。針對即將發(fā)布的MongoDB 3.6版本的可重寫的寫入將允許eBay減少應(yīng)用程序異常處理代碼。- 蜜度索驥:以跨模態(tài)檢索技術(shù)助力“企宣”向上生長
- 密態(tài)計算技術(shù)助力農(nóng)村普惠金融 螞蟻密算、網(wǎng)商銀行項目入選大數(shù)據(jù)“星河”案例
- 專利糾紛升級!Netflix就虛擬機專利侵權(quán)起訴博通及VMware
- 兩大難題發(fā)布!華為啟動2024奧林帕斯獎全球征集
- 2025年工業(yè)軟件市場格局:7個關(guān)鍵統(tǒng)計數(shù)據(jù)與分析
- Commvault持續(xù)業(yè)務(wù)策略:應(yīng)對現(xiàn)代數(shù)據(jù)保護挑戰(zhàn)的新范式
- 2025年網(wǎng)絡(luò)安全主要趨勢
- 2025年值得關(guān)注的數(shù)據(jù)中心可持續(xù)發(fā)展趨勢
- 量子計算火熱,投資者又在大舉尋找“量子概念股”
- 從量子威脅到人工智能防御:2025年網(wǎng)絡(luò)安全將如何發(fā)展
- 后人工智能時代:2025年,在紛擾中重塑數(shù)據(jù)、洞察和行動
免責聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準確性及可靠性,但不保證有關(guān)資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負任何法律責任。任何單位或個人認為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實內(nèi)容時,應(yīng)及時向本網(wǎng)站提出書面權(quán)利通知或不實情況說明,并提供身份證明、權(quán)屬證明及詳細侵權(quán)或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實,溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。