|
英文原文:Reddit: Lessons Learned from Mistakes Made Scaling to 1 Billion Pageviews a Month
Reddit[1] 是一個(gè)社交新聞網(wǎng)站。用戶可以將互聯(lián)網(wǎng)上搜集或原創(chuàng)的圖片或材料以帖子形式發(fā)布于網(wǎng)站上。而后其他用戶可以投票,投票的結(jié)果將作為帖子排名的依據(jù)。
Reddit 網(wǎng)站的第一位領(lǐng)薪雇員杰里米·埃德伯格在 RAMP[2] 討論會(huì)上做了一次出色的演講 ,他教給我們很多關(guān)于如何創(chuàng)建一個(gè)成功的社交網(wǎng)站。杰里米使用一種美德和罪惡的方法,分享在擴(kuò)展 Reddit 時(shí)的錯(cuò)誤例子。事實(shí)證明,他們也做了很多好東西。不過有點(diǎn)令人吃驚的是,杰里米現(xiàn)在是 NETflix[3] 的可靠性架構(gòu)師。所以我們在這篇文章中,也可免費(fèi)得到一些 NETflix 的觀點(diǎn)。
我完全認(rèn)可的一些經(jīng)驗(yàn)教訓(xùn):
- 把 SSD[4] 看做是便宜的內(nèi)存[5],而不是昂貴的硬盤。當(dāng) reddit 把數(shù)據(jù)庫從旋轉(zhuǎn)磁盤轉(zhuǎn)移到 SSD 后,服務(wù)器數(shù)量從 12 個(gè)降低到 1 個(gè),并且還有很多余量。SSD 雖貴了 4 倍,但是你會(huì)得到 16 倍的性能,這個(gè)花銷值得。
- 給用戶一點(diǎn)權(quán)力,看他們用來做什么,然后把好的東西轉(zhuǎn)換成功能。對我最大的啟示之一是 reddit 從它的用戶學(xué)到了很多,網(wǎng)站能順利運(yùn)作,很大程度上依靠了用戶。用戶會(huì)告訴你很多你不知道事情。例如,reddit gold 在社區(qū)里以笑話開始,后來他們把它做成產(chǎn)品,并得到用戶的喜愛。
- 沒有必要從一開始就建立一個(gè)可擴(kuò)展的架構(gòu)。一開始時(shí)你不知道什么會(huì)是你的功能集,所以你也不知道你會(huì)有哪些擴(kuò)展問題。隨著你的網(wǎng)站增長,你可以了解哪里將是擴(kuò)展問題。
- 把未登錄用戶當(dāng)作二等公民。未登錄的用戶訪問的緩存內(nèi)容,Akamai[6] 抗住了著 reddit 的流量沖擊。巨大的性能提升。
還有很多,這里是我談話的注釋,我們從早期擴(kuò)展 reddit 的錯(cuò)誤中學(xué)到許多經(jīng)驗(yàn)教訓(xùn):
數(shù)據(jù)統(tǒng)計(jì)
- 流量大約每 15 個(gè)月增加 1 倍。
- 上個(gè)月(8 月份),reddit 有來自 177 個(gè)不同國家的 73,293,644 名獨(dú)立訪客,查看了 4,885,611,148 個(gè)頁面。在大約 10 億次瀏覽量時(shí)結(jié)束了這次談話。不清楚現(xiàn)在的架構(gòu)有何不同。
- 28 名雇員。
- 每名雇員應(yīng)對大約 240 萬獨(dú)立訪客。(鏈接)
- 成千上萬的志愿者版主
- 截至 2012 年,他們有 240 臺(tái)服務(wù)器,支持每月 20 億頁面瀏覽量和 Postgres[7] 里的 2TB 數(shù)據(jù)。所有高流量的數(shù)據(jù)被移出 EBS[8],并上傳至本地臨時(shí)磁盤。
起源故事
- Reddit 始于 2005 年。他們帶著通過文字來點(diǎn)餐的想法去了 Y Combinator[9],結(jié)果被拒絕了。回來跟保羅·格雷厄姆商討,想建設(shè)互聯(lián)網(wǎng)網(wǎng)頁,這就是 reddit。那時(shí)他們并不知道 Digg[10]。
- 開始在數(shù)據(jù)中心,然后把功能部分轉(zhuǎn)移到 EC2[11]。
- 最初在 2006 年開始使用 S3[12] 存儲(chǔ)和供應(yīng)標(biāo)識(shí)。
- 2007 年為縮略圖使用 S3。
- 2008 年使用 EC2 經(jīng)由 VPN[13] 通道到數(shù)據(jù)中心進(jìn)行批處理。
- 2009 年 EC2 用于整個(gè)網(wǎng)站。傳輸數(shù)據(jù)到 EC2 能讓網(wǎng)站癱瘓一整天。稍后會(huì)談到著名的數(shù)據(jù)重力例子。
EC2
- 遷移到 EC2 上的動(dòng)機(jī)
- 堆疊機(jī)架不好玩。不想租用更多的機(jī)柜和購買更多的服務(wù)器。
- 增長過快的數(shù)據(jù)中心,在初期增長是不可預(yù)知的。
- 4 人一組的使用情況下成本是有效的。EC2 比在舊金山的數(shù)據(jù)中心便宜 29%。
- EC2 不是靈丹妙藥。你要經(jīng)受更高的網(wǎng)絡(luò)延遲和嘈雜的鄰居,所以計(jì)劃好應(yīng)對方案。好處是你可以按照你所需要的增長。
- 在 EC2 上跟蹤資源限制
- 所有資源都有賬戶限制。
- 亞馬遜甚至不知道他們的一些限制是什么。
- 跟蹤限制,并在需要它們之前提出警示。
- 捕獲異常去發(fā)現(xiàn)已達(dá)到異常。
架構(gòu)
- Reddit 的架構(gòu)很簡單。用戶連接到跟應(yīng)用層對話的網(wǎng)絡(luò)層。應(yīng)用層跟 memcache[14],Cassandra[15],以及 Postgres 對話。Postgres 使用主從配置。批處理系統(tǒng)使用 Cassandra 和 Postgres。
- 相比之下,NETflix 使用面向服務(wù)的架構(gòu),組件間使用 REST[16] 應(yīng)用程序接口相互交談。
- 優(yōu)點(diǎn):更容易自動(dòng)調(diào)節(jié),因?yàn)橹皇欠?wù)有問題需要調(diào)節(jié);更容易計(jì)劃規(guī)模;更容易識(shí)別問題,因?yàn)樗鼈冊?REST 調(diào)用背后都是孤立的;縮小變動(dòng)的影響;更有效的本地緩存。
- 缺點(diǎn):需要多個(gè)開發(fā)團(tuán)隊(duì)或工作在多個(gè)服務(wù)上的開發(fā)者,因此你需要更多的人;需要一個(gè)共同的平臺(tái)以防重復(fù)工作;對剛起步的小團(tuán)隊(duì)來說太多的間接支出。
- PostgreSQL 是一個(gè)出色數(shù)據(jù)庫。它建立了一個(gè)美好的,真地很快的鍵值存儲(chǔ)。
- 電子郵件是一個(gè)很難的問題。很難正確送達(dá)。從使用自己的電子郵件服務(wù)器開始,但是今天可能會(huì)去選擇電子郵件服務(wù)提供商。
- 隊(duì)列是個(gè)救世主。組件之間傳遞工作時(shí),把它放到一個(gè)隊(duì)列。你會(huì)得到一個(gè)不錯(cuò)的小緩沖區(qū)。(Reddit 使用 RabbitMQ[17] 作為消息隊(duì)列。)
- 混合 HAProxy[18] 和 Nginx[19]。一些流量被引導(dǎo)到它們中的一個(gè)。在嘗試 Niginx(遇到故障)后,負(fù)載均衡會(huì)選擇 HAProxy。它進(jìn)行 L7[20] 負(fù)載均衡。Nginx 仍被用來終止 SSL[21],并提供靜態(tài)內(nèi)容。
代碼
- 框架。從開始使用一個(gè)基于 Python 架構(gòu)的 Pylons[22](Django[23]太慢了)。Pylons 很容易上手,不過最終因?yàn)楦美黄ヅ洌×恕?Pylon 做了很大改動(dòng),結(jié)果最后使得它難以升級到新版本(現(xiàn)在修復(fù)了)。會(huì)將再次使用金字塔的(Pylons 的新名字)。
- 基于線程的事件?基于線程可以提前以排列大小,但大小可能是錯(cuò)誤的。基于事件可以處理更多連接。但是當(dāng)你碰壁時(shí)就只能碰壁。你想花更多時(shí)間來規(guī)劃你得線程池大小,還是就突然碰壁?
- 開源很不錯(cuò)。Reddit 建立在開源基礎(chǔ)上。不用為軟件付錢很不錯(cuò),特別是在起步階段。
數(shù)據(jù)
- 數(shù)據(jù)是公司最重要的資產(chǎn)。Facebook,Google 和 Flickr[24] 等公司建立在數(shù)據(jù)之上。
- 數(shù)據(jù)重力。你把數(shù)據(jù)放在將需要的地方,接近你的應(yīng)用。思路是把所有你想要的應(yīng)用圍繞在數(shù)據(jù)周圍。數(shù)據(jù)創(chuàng)建一個(gè)重力井,其他東西需要在它附近,因?yàn)閿?shù)據(jù)是最難移動(dòng)的。數(shù)據(jù)集越大就越難移動(dòng)。目前移出 EC2 的成本太大了。這就是為什么 EC2 允許你免費(fèi)導(dǎo)入數(shù)據(jù),當(dāng)你導(dǎo)出時(shí)向你收費(fèi)。他們希望你把你所有的數(shù)據(jù)放在云中。
- 關(guān)系與非關(guān)系。Reddit 里的大部分?jǐn)?shù)據(jù)是以鍵值方式存儲(chǔ)在 Postgres。為了處理和更容易分析,一切涉及金錢交易的數(shù)據(jù)被保存在關(guān)系數(shù)據(jù)庫。
- Postgres 很穩(wěn)定。它堅(jiān)如磐石,他們從未有過自身問題。如果他們有問題,那也是它周圍事物的問題,例如用 Python 編寫的應(yīng)用系統(tǒng)。(所以)很難找到 Postgres 專家。
- Postgres 被選為鍵值存儲(chǔ),因?yàn)楫?dāng)時(shí)還木有 Cassandra。另外,Postgres 的速度非常快,而且現(xiàn)在原生地支持鍵值(KV)。
- 分區(qū)。寫入被分割的四個(gè)主數(shù)據(jù)庫:鏈接,帳戶,subreddits[25],評論,投票,以及雜項(xiàng)。
- 每個(gè)都有從屬。表決數(shù)據(jù)庫有一個(gè)主數(shù)據(jù)庫,一個(gè)從屬數(shù)據(jù)庫。注釋數(shù)據(jù)庫有一個(gè)主數(shù)據(jù)庫和 12 個(gè)從屬數(shù)據(jù)庫。
- 如果可能的話避免從主數(shù)據(jù)庫讀取,而是直接從從屬數(shù)據(jù)庫讀取,以保持主數(shù)據(jù)庫專門進(jìn)行寫操作。
- 客戶端庫將在從屬數(shù)據(jù)庫之間進(jìn)行負(fù)載平衡,如果一個(gè)從屬數(shù)據(jù)庫處于忙狀態(tài),則嘗試新的一個(gè)。
- 寫數(shù)據(jù)庫訪問層叫做“事情”。
- 這種方法工作了很長一段時(shí)間。分片相結(jié)合的數(shù)據(jù)庫,讀取從屬,跟蹤閱讀從屬的負(fù)載均衡性能。
- Cassandra。
- 快速寫入,快速反查詢,簡單的增量可擴(kuò)展性,無單點(diǎn)故障。
- 在 NETflix 數(shù)據(jù)被分布在三個(gè)不同的區(qū)域。所有數(shù)據(jù)的副本在所有三個(gè)區(qū)域。即使一個(gè)區(qū)域丟失了,它們?nèi)匀豢梢赃\(yùn)行。
- 在 Cassandra,切換投票數(shù)據(jù)是 reddit 的一個(gè)巨大成功。Cassandra 的布隆過濾器(Bloom Filters[26])真正激活快速反查詢。它能很快識(shí)別哪個(gè)評論你沒有投票,所以否定的回答很快回來。(更多關(guān)于這個(gè)話題)
社交
- 2008年 reddit 是開源的
- 用戶可以讀取代碼,得知他們沒有篡改投票。
- 用戶可以添加他們總是想添加的功能,reddit 會(huì)接受它。這個(gè)行不通,因?yàn)槿藗儾⒉徽娴南雽懘a。
- 招聘。其他人知道這代碼,所以更容易雇人。
- 蠕蟲事件。有人想出了如何通過注入額外的 JavaScript 頁面編寫一個(gè)蠕蟲病毒。它確實(shí)無意,但是失控了。在創(chuàng)始人之一結(jié)婚的當(dāng)天,整個(gè)團(tuán)隊(duì)乘一架飛機(jī)從婚禮回來。但一個(gè)用戶已經(jīng)回應(yīng)了一個(gè)補(bǔ)丁,將中止蠕蟲蔓延。代碼開源,讓社區(qū)在危機(jī)時(shí)刻幫了忙。
Reddit 如何掙錢?
- 側(cè)欄廣告,自助式廣告,商品,reddit gold,市場。
- 需要注意的是 reddit 是尚未盈利(鏈接)。這帶來了一個(gè)問題,像 reddit 這樣的網(wǎng)站,什么時(shí)候能在云端盈利?
- 還要注意的是,reddit 已不屬于 Condé Nast[27] 了,所以它是獨(dú)立的。(鏈接)
錯(cuò)誤
- 沒有考慮到遷移到 EC2 后增加的延遲。在數(shù)據(jù)中心,他們有亞毫秒級的機(jī)器之間訪問,所以進(jìn)行 1000 次調(diào)用來 memache 一個(gè)頁面負(fù)載時(shí)可行的。在 EC2 上并非如此。 Memcache 訪問時(shí)間增加了 10 倍到毫秒級,使他們的老辦法也不用上了。修復(fù)方法就是批量調(diào)用以 Memcache 一個(gè)請求內(nèi)如此大量的服務(wù)。
- 只是承諾。亞馬遜并不總是兌現(xiàn)承諾,并圍繞承諾工作。繞過故障,而不是試圖解決這些問題的設(shè)計(jì)。 (這里沒有提到,也許 EBS?)
- 在生產(chǎn)中使用尖端產(chǎn)品。Cassandra 仍在其開發(fā)早期就被使用。現(xiàn)在真的是出色,但那時(shí)它是有問題的。
- 本應(yīng)該更早卸載很多工作給客戶端。服務(wù)器做了很多的頁面渲染,本應(yīng)該交給客戶端去做。 Facebook 是這方面的大師。你得到一個(gè)有很多分區(qū)的矩形,API 被調(diào)用來填充所有分區(qū)。這就是他們起初所希望的 reddit。它本可以擴(kuò)展得更好。它還有助于調(diào)試,因?yàn)楹苋菀状_定哪個(gè) API 調(diào)用出了問題。
- 不具備足夠的監(jiān)控性,使用的監(jiān)控系統(tǒng)的虛擬化不夠友好。一開始用的是 Ganglia[28],倒是有很好的圖形界面,但很難使用,而且變化太快。
- 數(shù)據(jù)沒有過期期限。 你可以在 reddit 挖墳看早期的評論回復(fù)。他們已經(jīng)開始限制,所以你不能給舊評論投票,或給舊帖添加評論。否則會(huì)導(dǎo)致數(shù)據(jù)隨著時(shí)間的推移不斷增長,使得在數(shù)據(jù)庫保存熱點(diǎn)數(shù)據(jù)的難度越來越大。
- 沒有使用一致的哈希。當(dāng)哈希到一個(gè)緩存,問題是如果你需要添加更多的緩存,你會(huì)被卡住,因?yàn)樗械臄?shù)據(jù)是在一個(gè)或者許多你正在哈希的緩存。當(dāng)增加緩存時(shí)你無法在此平衡。一致的哈希是一種解決這個(gè)問題的方法。遷移到 Cassandra 解決了它。
經(jīng)驗(yàn)教訓(xùn)
- 擴(kuò)展的關(guān)鍵是在你的用戶之前找到瓶頸。
- 使用代理是擴(kuò)展的巨大福音。用戶可以根據(jù)他們擊中的 URL 被路由。 Reddit 有一個(gè)系統(tǒng),監(jiān)控每個(gè) URL 用多久得到服務(wù)。人們被放進(jìn)不同的線路。慢流量去一個(gè)地方,快的去另一個(gè)。基于平均響應(yīng)速度的流量分割是一個(gè)巨大的促進(jìn)。
- 所有的事情自動(dòng)化。如果你對待你的基礎(chǔ)設(shè)施如同對待你的代碼,你的生活會(huì)容易得多。一切都應(yīng)該自動(dòng)開啟,并自動(dòng)進(jìn)行配置。
- 沒有必要從一開始就建立一個(gè)可擴(kuò)展的架構(gòu)。一開始時(shí)你不知道什么會(huì)是你的功能集,所以你也不知道你有會(huì)有哪些擴(kuò)展問題。隨著你的網(wǎng)站增長,你可以了解哪里將是擴(kuò)展問題。
- 剛起步時(shí)不要使用面向服務(wù)的架構(gòu)。記住,當(dāng)發(fā)展到中等規(guī)模時(shí)你可以去實(shí)現(xiàn)它;否則只會(huì)有太多的開銷。
- 不要跟隨潮流。有時(shí)候跟潮流是對的,例如 node.js。
- 給所有東西加個(gè)限制。給反復(fù)發(fā)生的事情設(shè)置一個(gè)上限,并根據(jù)需要提高或降低限制。如果超過限制,阻止用戶以保護(hù)正常服務(wù)。例如為 subreddits 上傳文件標(biāo)識(shí)。用戶想到了他們可以上傳真正的大文件,這會(huì)損害系統(tǒng)。也不要接受巨大的文本。會(huì)有人 hi 想給你發(fā)送 5GB 的文本。
- 長遠(yuǎn)計(jì)劃。在設(shè)計(jì)時(shí)總是假設(shè)將有一大堆你在做的。應(yīng)用服務(wù)器,數(shù)據(jù)庫,緩存。總是假定你打算從一開始有一個(gè)以上的。這將在未來更容易橫向擴(kuò)展。
- 用C重寫 Python 函數(shù)。在 reddit 擴(kuò)展中為獲取速度,他們找出 Python 代碼里最重復(fù)的函數(shù),并用C重寫。特別是過濾器,markdown 渲染,memcache 調(diào)用。Python 的好處是容易和高效地調(diào)用C。
- 盡可能保持無結(jié)構(gòu)模式。這樣的話,可以很容易地增加新的功能。你所要做的就是添加新的屬性,而無需改變表格。
- 數(shù)據(jù)過期。鎖定舊帖和創(chuàng)建一個(gè)完全渲染的頁面并緩存它。這是如何應(yīng)對有可能要淹沒你的數(shù)據(jù)庫的所有舊數(shù)據(jù)。同時(shí),不要允許在舊的評論上投票,或給舊帖添加評論。用戶很少會(huì)注意到。
- 把 SSD 當(dāng)作便宜的內(nèi)存,而不是昂貴的磁盤。 當(dāng) reddit 的數(shù)據(jù)庫從旋轉(zhuǎn)磁盤轉(zhuǎn)到 SSD 時(shí),服務(wù)器的數(shù)量從 12 個(gè)減少到 1 個(gè),還有很大的余量。SSD 是貴了 4 倍,但你會(huì)得到 16 倍的性能,物有所值。在 NETflix 和 Reddit 上一些最大的 Cassandra 節(jié)點(diǎn)都是在 SSD 上,這作出了巨大的改善。
- 每個(gè)工具都有不同的使用情況。Memcache 沒有保證持久性,但是非常快,所以投票數(shù)據(jù)存儲(chǔ)在那里,以使渲染頁面盡可能的快。Cassandra 持久,快速,并能提供快速的反查詢,因?yàn)槠洳悸∵^濾器,所以它適合存儲(chǔ)不在 memchche 里的持久投票數(shù)據(jù)副本。 Postgres 是堅(jiān)如磐石而且是關(guān)系型的,所以這是一個(gè)很好的地方作為備份 Cassandra 投票(如果需要,Cassandra 中的所有數(shù)據(jù)可以從 Postgres 生成),也做批量處理,有時(shí)這需要關(guān)系的能力。
- 將未登錄用戶當(dāng)作二等公民。未登錄用戶登占據(jù)約 80% 的流量,現(xiàn)在是接近 50%。總是給未登錄用戶緩存內(nèi)容,Akamai 承受了 Reddit 流量的消耗。有了巨大的性能改進(jìn)。附帶的好處是如果 reddit 宕機(jī),你不登錄的話,你可能永遠(yuǎn)不會(huì)知道。
- 把一切都放入一個(gè)隊(duì)列。投票,評論,創(chuàng)建縮略圖,預(yù)計(jì)算查詢,郵件處理和更正。隊(duì)列通過監(jiān)控隊(duì)列長度允許你知道什么時(shí)候有一個(gè)問題。附帶的好處是隊(duì)列隱藏用戶的問題,因?yàn)橹T如投票請求的事情都在排隊(duì),如果它們不被立即應(yīng)用無人注意。
- 在多個(gè)可用區(qū)保存數(shù)據(jù)。
- 避免在單一實(shí)例上保存狀態(tài)。
- 得頻繁快照 EBS 磁盤。
- 不要在實(shí)例上保存密鑰。亞馬遜現(xiàn)在服務(wù)向你提供實(shí)例鍵。
- 基于安全組分解功能。
- 提供 API。程序員將會(huì)在你的平臺(tái)上做東西。例如,reddit 的 iPhone 應(yīng)用程序,就是其他人用公開的 API 制作的。
- 在自己的社區(qū)活躍。Reddit 的用戶喜歡 reddit 的管理員在自己網(wǎng)站上活躍,并與他們互動(dòng)。
- 讓用戶為你工作。有用戶輸入的網(wǎng)站的問題總是有作弊、垃圾郵件和欺詐。Reddit 大部分管理的工作是由成千上萬的志愿者來完成的,比如他們處理大多數(shù)的垃圾郵件問題。這種方式工作得非常好,是 reddit 的可以保持小團(tuán)隊(duì)的原因之一。
- 給用戶一點(diǎn)權(quán)利,看他們用它做什么,把好東西變成功能。例如,當(dāng)添加了給 subreddits 增加 CSS 的能力時(shí),他們看到人們在做什么,增加了許多通用的東西作為大家的功能。這也使得用戶能在 Reddit 上做東西而興奮,因?yàn)樗麄兿矚g那種操控感。有很多其他的例子。
- 傾聽你的用戶。用戶會(huì)告訴你很多你不知道但是你可能想知道的東西。例如,reddit gold 在社區(qū)里以一個(gè)笑話開始。后來他們把它做成了產(chǎn)品,用戶也很喜歡。
譯注:
1. Reddit 是一家美國社交新聞網(wǎng)站 Reddit.com。
2. RAMP 是一個(gè)所有創(chuàng)業(yè)者在擴(kuò)大經(jīng)營規(guī)模前想要參加的討論會(huì)。
3. NETflix 是一家美國公司,提供互聯(lián)網(wǎng)隨選流媒體播放、在線出租業(yè)務(wù)。
4. SSD 即 Solid State Disk 固態(tài)硬盤。
5. RAM 即 Random Access Memory 隨機(jī)訪問存儲(chǔ)器。
6. Akamai 是一家美國內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)服務(wù)商。
7. Postgres 即 PostgreSQL, 是一個(gè)自由的對象-關(guān)系數(shù)據(jù)庫服務(wù)器(數(shù)據(jù)庫管理系統(tǒng))。
8. EBS 即 exclusion basis system,動(dòng)態(tài)密鑰管理方法。
9. Y Combinator 是一家以投資種子階段初創(chuàng)公司為業(yè)務(wù)的創(chuàng)投公司。
10. Digg 即“掘客”,或者“頂格”,美國公司,2012 年被紐約科技開發(fā)公司 Betaworks 收購。
11. EC2 即亞馬遜彈性計(jì)算云(Elastic Compute Cloud),是一個(gè)讓使用者可以租用云端電腦運(yùn)行所需應(yīng)用的系統(tǒng)。
12. S3 即亞馬遜簡易存儲(chǔ)服務(wù)(Simple Storage Service),由亞馬遜網(wǎng)絡(luò)服務(wù)系統(tǒng)提供的在線存儲(chǔ)服務(wù)。
13. VPN 即虛擬專用網(wǎng)絡(luò)(Virtual Private NETwork),是在公用網(wǎng)絡(luò)上建立專用網(wǎng)絡(luò)的技術(shù)。
14. Memcache 是一個(gè)高性能的分布式的內(nèi)存對象緩存系統(tǒng)。
15. Cassandra 是一套開源分布式 NoSQL 數(shù)據(jù)庫系統(tǒng)。
16. REST 即表征狀態(tài)轉(zhuǎn)移(Representational State Transfer)是 Roy Fielding 博士在 2000 年博士論文中提出來的一種軟件架構(gòu)風(fēng)格。
17. RabbitMQ 是流行的開源消息隊(duì)列系統(tǒng)。
18. HAProxy 提供高可用性、負(fù)載均衡以及基于 TCP 和 HTTP 應(yīng)用的代理。
19. Nginx 即 engine x,是一個(gè)高性能的 HTTP 和反向代理服務(wù)器。
20. L7 即 Layer7,是網(wǎng)絡(luò)層協(xié)議的腳本文件。
21. SSL 即 Secure Sockets Layer 安全套接層,是為網(wǎng)絡(luò)通信提供安全及數(shù)據(jù)完整性的一種安全協(xié)議。
22. Pylons 是一個(gè)開放源代碼的 Web 應(yīng)用框架,使用 Python 語言編寫。
23. Django 是一個(gè)開放源代碼的 Web 應(yīng)用框架,使用 Python 語言編寫。
25. Subreddit 是 reddit 上一個(gè)定制的子論壇。
26. Bloom Filter 即布隆過濾器,是一個(gè)很長的二進(jìn)制向量和一系列隨機(jī)映射函數(shù)。
27. Condé Nast 即康泰納仕,是一個(gè)總部位于美國紐約市的國際期刊出版集團(tuán)。
28. Ganglia 是 UC Berkeley 發(fā)起的一個(gè)開源集群監(jiān)視項(xiàng)目。
譯文鏈接: http://blog.jobbole.com/47630/
it知識(shí)庫:Reddit月瀏覽量從百萬擴(kuò)容到十億的陷阱和教訓(xùn),轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。