新聞中心
作為世界前十十個全球零售品牌,擁有1.7億活躍買家和10億在線市場,eBay無法承受系統(tǒng)停機(jī)帶來的損失。這就是為什么公司依靠MongoDB作為其核心企業(yè)數(shù)據(jù)平臺標(biāo)準(zhǔn)之一,為運行ebay.com的多個面向客戶的應(yīng)用程序提供支持。

常山網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項目制作,到程序開發(fā),運營維護(hù)。成都創(chuàng)新互聯(lián)公司于2013年開始到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。
在今年的MongoDB全球大會上,eBay的首席NoSQL DBA曲峰提供了彈性應(yīng)用程序的實用設(shè)計模式 — 他的團(tuán)隊開發(fā)的一套支持企業(yè)級MongoDB部署的架構(gòu)藍(lán)圖。
曲先生開始討論多年來可用性概念的變化。過去,網(wǎng)站可以接受每周維護(hù)的預(yù)定停機(jī)時間。隨著當(dāng)前服務(wù)的全球化,用戶或業(yè)務(wù)都不會接受如此頻繁的停機(jī)!此外,大多數(shù)公司現(xiàn)在在商業(yè)硬件平臺上構(gòu)建其服務(wù),而不是以前的 Sun Solaris / Sparc服務(wù)器。雖然商業(yè)硬件的成本要低得多,但是它也經(jīng)常故障。
這兩個因素從根本上改變了工程團(tuán)隊如何考慮可用性,并且引導(dǎo)eBay創(chuàng)建其“彈性設(shè)計模式”,以建立最大化平均故障時間(Mean Time To Failure,MTTF)并最大限度地減少平均恢復(fù)時間(Mean Time To Recovery,MTTR)的數(shù)據(jù)庫最佳實踐。
為了構(gòu)建應(yīng)用程序,eBay開發(fā)人員可以從五個公認(rèn)的數(shù)據(jù)庫標(biāo)準(zhǔn)中進(jìn)行選擇。 除了MongoDB,團(tuán)隊還可以選擇使用Oracle或MySQL關(guān)系數(shù)據(jù)庫和兩個NoSQL數(shù)據(jù)庫。 曲先生的DBA團(tuán)隊為適當(dāng)?shù)臄?shù)據(jù)庫選擇提供指導(dǎo),根據(jù)應(yīng)用程序的數(shù)據(jù)訪問模式、用戶負(fù)載、數(shù)據(jù)類型等進(jìn)行選擇。
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團(tuán)隊在六個維度上評估這些差異:可用性、一致性、持久性、可恢復(fù)性、可擴(kuò)展性和性能。例如,使用點對點、無主設(shè)計的NoSQL數(shù)據(jù)庫具有昂貴的數(shù)據(jù)修復(fù)和重新平衡過程,必須在節(jié)點發(fā)生故障之后啟動。此重新平衡過程會影響應(yīng)用程序吞吐量和延遲,并可能導(dǎo)致連接堆疊,因為客戶端等待恢復(fù),這可能導(dǎo)致應(yīng)用程序停機(jī)。為了減輕這些影響,eBay不得不將最初在Oracle上開發(fā)的應(yīng)用級產(chǎn)品分層在這些無數(shù)據(jù)庫之上。這種方法使DBA團(tuán)隊能夠?qū)⒏蟮募悍殖梢幌盗凶蛹?,從而將重新平衡開銷與較小的一組節(jié)點隔離開來,同時只影響了一小部分查詢。eBay DBA團(tuán)隊構(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成員被認(rèn)為是在Primary成員失敗時的晉升候選人。例如,如果副本集Primary成員失敗,則DC1本地的節(jié)點將被優(yōu)先選擇。只有整個DC1遭受中斷,DC2中的復(fù)制集成員才會被認(rèn)為可以進(jìn)行選舉,根據(jù)哪個節(jié)點已經(jīng)執(zhí)行最近的寫操作選擇新的Primary成員。 可以通過使用MongoDB的 majority write concern來擴(kuò)展這種設(shè)計模式,以使得能夠跨數(shù)據(jù)中心持久的寫入。
標(biāo)準(zhǔn)MongoDB設(shè)計模式被用作eBay的“閱讀強化/高可用讀取模式”的基礎(chǔ),該演示文稿用于為eBay產(chǎn)品目錄提供支持。對于目錄負(fù)載,MongoDB副本集可以擴(kuò)展到50個成員,為大并發(fā)量的數(shù)據(jù)分發(fā)提供了讀取的可擴(kuò)展性和恢復(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)用程序異常處理代碼。
網(wǎng)頁標(biāo)題:在彈性應(yīng)用程序設(shè)計上,eBay為什么選擇MongoDB?
鏈接分享:http://www.5511xx.com/article/copdhpj.html


咨詢
建站咨詢
