成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何在發(fā)型不亂的前提下應對單日十億計Web請求

譯文
開發(fā) 前端
一套新的技術堆棧在應用現(xiàn)代、實時、數(shù)據(jù)驅動型應用程序的同時,還能為負載預留好充足的額外空間。

就在不久之前,AppLovin移動廣告平臺的單一廣告請求數(shù)量突破了200億大關——相當于每一秒鐘處理50萬項事務——其如火如荼的發(fā)展態(tài)勢幫助眾多品牌在激勵現(xiàn)有客戶的同時、從市場中拉攏到了新的買家。那么AppLovin是如何打造出這樣一套有能力應對數(shù)百億請求、但又無需對硬件及運維人員進行顯著擴張的基礎設施的呢?

在今天的文章中,我們將共同了解該公司如何發(fā)現(xiàn)并選擇采用各類***實踐,從而通過技術堆棧進化實現(xiàn)業(yè)務規(guī)模拓展。

***成本效率的擴展思路

讓我們首先從規(guī)模談起。對于我們這些在AppLovin工作的家伙來說,***成本效率的規(guī)模擴展方案意味著能夠在大幅提升負載處理能力的同時、避免硬件或者人員的線性增長。如果我們只能通過采購雙倍的服務器設備或者將人員數(shù)量提高一倍來實現(xiàn)請求處理能力倍增,那么這樣的方案根本沒什么實際意義。由于我們在構建基礎設施時充分考慮到效率拓展需求,因此才能夠在過去一年中將服務器的請求處理數(shù)量增加到此前的二十倍。

 

 

另一項值得注意的重點在于,對于大規(guī)模分布式系統(tǒng)而言,市面上并沒有現(xiàn)成的解決方案可供借鑒。這類系統(tǒng)的構建工作必須使用自定義組件。無論歸屬于哪個行業(yè),技術團隊在建立分布式系統(tǒng)時都需要對選定的組件進行認真評估。除此之外,每一次出現(xiàn)工作負載爆炸式增長的時候,這些組件也需要及時作出調整。

針對這些調整制定規(guī)劃意味著基礎設施自身必須擁有出色的靈活性。我們從業(yè)務建立之初就充分意識到,移動廣告領域可以說瞬息萬變,而我們則需要打造一套能夠與之相匹配且相適應的靈活基礎設施。我們希望自己的這套基礎設施能夠允許員工針對各類市場需求實現(xiàn)對應的創(chuàng)新活動。舉例來說,如果我們需要進行細節(jié)調整,那么只需在現(xiàn)有基礎設施之上直接實施即可、而無需對設施整體進行重新設計。這就是我們工作的核心指導思想。

這套方案也切實帶來了回報。我們最近剛剛將單月信息流量提升了一倍,而讓這一切變成現(xiàn)實的正是我們這套靈活性出眾的基礎設施。

適應性強且具備可擴展能力的實時基礎設施

考慮到上述構建要求,我們所打造的基礎設施堆棧中包含Web服務器、一套實時緩存層、數(shù)據(jù)庫、分布式消息服務以及大規(guī)模并行計算系統(tǒng)。

作為前端的是成百上千臺Web服務器。這些服務器設備用于應答每天來自海量用戶的數(shù)十億請求。當每一條請求傳入時,我們需要立刻作出一系列決定,包括是否對其作出應答、為其支付多少成本以及提供哪條廣告作為宣傳內容——整個決定過程大約耗時50毫秒。

接下來我們要做的是將用戶配置信息納入緩存,整套數(shù)據(jù)庫包含數(shù)十億擁有手機設備的用戶。這些信息需要在很段的時間周期內進入可用狀態(tài),從而實現(xiàn)Web服務器的響應并決定是否為特定廣告請求提供支持。簡而言之,我們需要的是一套分布式緩存層,旨在以實時方式為全部傳入請求提供所需數(shù)據(jù)。這套緩存層中使用包括Aerospike、Redis以及Memchached在內的多套系統(tǒng)。

除此之外,另有大量分析、報告、數(shù)據(jù)倉庫以及數(shù)據(jù)科學功能集需要接入到不同類型的數(shù)據(jù)庫當中。從宏觀規(guī)模角度看,這些功能必須具備分布式能力。為了實現(xiàn)這種分布式機制,我們采用分布式消息或者發(fā)布/訂閱消息服務。分布式消息發(fā)送機制為我們帶來了以下幾項關鍵優(yōu)勢:

·我們能夠從任何位置獲取需要的信息。

·我們能夠利用日志文件作為事務單元,從而處理在一秒鐘內處理數(shù)以十萬計請求。

·我們能夠為任何服務訂閱方案提供其需要的信息。

上述消息必須被發(fā)布到全球世界內的任何位置。其目標位置可能是一套惠普Vertica數(shù)據(jù)倉庫、MySQL數(shù)據(jù)庫、Apache Hadoop系統(tǒng)或者一套Apache Storm實時處理系統(tǒng)。分布式消息發(fā)送機制可以說是所有實時架構的核心組成部分。

***,我們需要利用分布式計算體系實現(xiàn)數(shù)據(jù)處理。擁有分布式計算體系意味著對Hadoop或者Apache Spark等技術方案的運用——這類并行處理系統(tǒng)能夠查看全部數(shù)據(jù)并通過擴展處理規(guī)模龐大的數(shù)據(jù)負載。

以上列出的所有部件都通過一套分布式日志架構實現(xiàn)對接。這類基于日志架構的基本設計思路在于,它能夠接納多種數(shù)據(jù)源,利用日志文件作為事務單元并獲取來自全部數(shù)據(jù)源的信息。舉例來說,一臺廣告服務器可能會記錄下“我是否提供了廣告內容?用戶是否點擊過廣告內容?我是否感知到事務處理?”這一切都將被寫入日志當中,而大量日志信息則匯聚成消息系統(tǒng)。這些日志不斷傳輸、接受處理,***的匯總數(shù)據(jù)則被寫入數(shù)據(jù)庫。全部此類數(shù)據(jù)都能夠為日志記錄系統(tǒng)所調用,并以訂閱方式交付給任何需要這些數(shù)據(jù)的服務。

這種架構類型之所以能夠實現(xiàn)創(chuàng)新,是因為我們完全可以將任何組件插入到系統(tǒng)當中。大家可能需要在特定位置插入Aerospike實時數(shù)據(jù)庫,也可能希望在其它位置使用Vertica。我們必須有能力將全部輸入信息交付給全部不同類型的處理工具。擁有這樣一套基于日志的架構能夠幫助我們通過日志將所有數(shù)據(jù)源同集中式日志記錄系統(tǒng)對接起來,并最終成為實時訂閱系統(tǒng)的實現(xiàn)基礎。

評估技術選項

對我們這套平臺的評估工作能夠充分展示,為什么擁有具備高度靈活性的基礎設施是如此重要。

我們最初其實選擇了利用PHP語言進行平臺構建。這是一種效率極高的開發(fā)方式,而且也很容易找到大量熟悉此類開發(fā)任務的編程人員。同樣的道理也適用于MySQL,而考慮到MongoDB作為NoSQL數(shù)據(jù)庫領域重要成員的崇高地位,我們決定將二者并行使用。當然,作為一家初創(chuàng)企業(yè),我們在起步階段在Amazon Web Services上構建起平臺的核心主體。但***,我們利用RabbitMQ來實現(xiàn)自己的發(fā)布/訂閱消息機制。

隨著時間的推移,我們已經開始將數(shù)據(jù)遷移到由Aerospike、Redis、Apache Cassandra、Vertica以及Hadoop系統(tǒng)所共同構成的綜合體系當中。我們完成了由PHP向C++的轉換,而且將消息發(fā)布任務由RabbiMQ轉換到一套定制化Java系統(tǒng)當中。與此同時,我們還成功削減了其它系統(tǒng)的使用數(shù)量,將其規(guī)模嚴格控制在我們相對易于理解、而工程技術團隊又明白該如何處理的程度上。

新軟件的引進無疑是個成本昂貴的命題。無論是開源軟件還是專有許可軟件,如果大家作出了嘗試但卻沒能收到預期中的效果,那么整個工作就又得退回幾個月之前。因此我們認真對每款產品進行了評估,希望能預先了解其是否物有所值。

我們采取的***項舉措是審視行業(yè)中的其它廠商在使用哪些產品,這些產品又能給我們的現(xiàn)有用例帶來哪些改進。舉例來說,當評估Aerospike時,來自另一家廣告技術企業(yè)的工作人員就向我們介紹了他的經驗。我們之后又與四、五家其它Aerospike客戶進行了溝通,并提出“你們的用例跟我們的是否存在相似之處?你們喜歡Aerospike的實際表現(xiàn)嗎?你們對Aerospike還有哪些不滿?”等問題。在此之后,我們還非常關心“如果我將其引入自己的業(yè)務體系,是否會還出現(xiàn)什么意想不到的計劃外狀況?”

另一項評估元素則源自開發(fā)人員的偏好傾向。這一點在開源項目當中表現(xiàn)得尤為突出,不過在商業(yè)產品范疇內也***指導意義。與此相關的問題包括:“是否已經有開發(fā)人員編寫、使用以及為其創(chuàng)建文檔?這款產品是否擁有我們想要的發(fā)展軌跡?我身邊的朋友中是否有人正在使用這套系統(tǒng)?如果這是一套開源系統(tǒng),那我是否需要獨力解決自己面臨的問題?”

舉例來說,我們目前正在對Apache Storm與Apache Spark進行全面比較。這兩個項目都能夠作為實時計算處理系統(tǒng)的實用性解決手段,那么哪一種更受開發(fā)人員的青睞呢?在其它因素旗鼓相當?shù)那闆r下,這一點就顯得非常重要了。

接下來是適應性水平。換句話來說:這套方案能否順暢融入我的系統(tǒng)?舉例而言,如果我們目前所使用的是PHP、Python或者C++,那么這款新軟件能否以原生方式集成到對應語言當中?我們又是否能夠編寫出切實與該組件內API相對接的工具?

除此之外,我們還要深入考量產品出現(xiàn)故障的可能性。特別是在我們的實際案例當中,企業(yè)的多座數(shù)據(jù)中心分布在全球各個位置,最重要的就是在故障出現(xiàn)時及時了解實際情況。某些產品在遭遇意外時不會發(fā)出警報作為提醒,這在我們眼中就顯得非常危險。

***一個需要考慮的問題在于平臺的潛在風險——投入大量資源構建起的方案有可能在后續(xù)使用過程中給企業(yè)帶來恐怖的額外成本。舉例來說,如果一家企業(yè)并沒有以.Net為核心構建業(yè)務體系的經驗,那么選擇任何一套與.Net相關的技術平臺都將毫無意義。如果這套技術方案基于Java所打造,那么我們是否擁有對其加以妥善維護的必要資源?如果我們采用的是Amazon Web Services或者Google Compute Engine,那么是否有信心在未來三年內繼續(xù)將全部業(yè)務依賴于這些云平臺的發(fā)展趨勢?

一家企業(yè)所采用的技術方案在潛在客戶、合作伙伴或者投資者眼中往往會被視為優(yōu)勢或者劣勢因素。總而言之,平臺的實施目標在于貼合業(yè)務的運營目標,這也應該成為指導我們選擇的根本性原則。

英文:http://www.infoworld.com/article/2868513/database/how-to-serve-billion-web-requests-per-day.html

責任編輯:林師授 來源: 51CTO
相關推薦

2010-09-30 13:40:32

數(shù)據(jù)風險

2021-01-28 09:37:06

物聯(lián)網轉售物聯(lián)網IOT

2010-05-21 15:05:35

IBM統(tǒng)一通信

2017-09-23 15:29:15

2016-11-21 16:30:29

數(shù)據(jù)合規(guī)胡滔

2021-07-14 10:33:10

微軟Windows 11預覽版

2022-06-22 10:33:06

麻省理工大學PaShUnix shell

2019-07-10 09:44:02

華為禁令開發(fā)

2010-04-08 12:43:28

2021-05-20 14:58:36

Android谷歌運營商

2014-05-26 16:00:03

何波高頻模塊UPS華為

2017-05-18 12:45:35

數(shù)據(jù)分析數(shù)據(jù)理解數(shù)據(jù)

2020-07-08 13:30:31

網絡安全數(shù)據(jù)泄漏網絡威脅

2022-05-27 09:25:12

攜程酒店本地緩存查詢服務

2025-02-06 08:09:20

POSTGET數(shù)據(jù)

2009-07-20 16:18:54

iBatis分頁Hibernate式的

2025-04-09 11:35:00

MySQL數(shù)據(jù)庫監(jiān)控

2023-03-08 10:15:43

AI計算機視覺

2018-09-17 18:07:22

網絡安全網絡安全技術周刊

2022-12-05 11:17:58

數(shù)據(jù)安全數(shù)據(jù)流通數(shù)字化
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 99视频在线免费观看 | 波多野结衣精品 | 男人的天堂中文字幕 | 午夜理伦三级理论三级在线观看 | 黄色在线免费观看视频 | 日韩精品一区二区三区在线观看 | 97久久精品 | 午夜免费视频观看 | 久久综合99| 男女羞羞视频免费 | 精品国产欧美一区二区 | 国产精品三级久久久久久电影 | 国产精品欧美一区二区三区 | 女生羞羞视频 | 国产剧情一区二区三区 | 欧美99久久精品乱码影视 | 亚州综合一区 | 一区二区日韩 | 日本精品在线播放 | 福利视频一区二区 | 日韩电影中文字幕 | 婷婷久久五月 | 午夜免费观看 | 久久久青草婷婷精品综合日韩 | 久久国产精品视频 | 久久免费看 | 欧美午夜一区二区三区免费大片 | 一区二区三区四区国产 | 酒色成人网 | 91精品国产自产在线老师啪 | 久久久久久久久久久久久久av | 亚洲风情在线观看 | 亚洲精品乱码久久久久久按摩 | 午夜精品久久久久久久久久久久久 | 国产成人aⅴ | 久久蜜桃av一区二区天堂 | 91亚洲精品久久久电影 | 欧美一区二区在线 | 日本久久久一区二区三区 | av网站在线免费观看 | av香蕉|