自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

揭秘Digg背后的技術(shù)

開發(fā) 前端 后端
雖然最近業(yè)績有所下滑,也出現(xiàn)了一些技術(shù)故障,但Digg作為首屈一指的社會化新聞網(wǎng)站,其背后的技術(shù)還是值得一探,最近Digg工程師 Dave Beckett 的一篇名為《How Digg is Built》的文章,非常系統(tǒng)地將Digg背后的技術(shù)展現(xiàn)給大家,非常值得一看。

NoSQLFan 簡要翻譯如下:

一、Digg提供的服務(wù)

一個社會化的新聞網(wǎng)站

對個人來說它又是一個私人社會化新聞發(fā)布平臺

一個廣告平臺

一個開放API的平臺

博客及文檔系統(tǒng)

二、Digg 的核心功能

文章提交功能 – 提交你認(rèn)為有價值的新聞。

文章列表功能 – 將用戶提交的新聞做各種不同緯度的列表(個人新聞,最近發(fā)布等)。

對文章的操作 – 用戶可以對文章進(jìn)行各種操作,包括閱讀、點擊、digg、評論、為評論評分等等。

置頂文章功能 – Digg會定時將一些熱門的文章置頂?shù)紻igg首頁,從頁讓更多人能夠看到。

三、Digg功能的背后的實現(xiàn)

首先我們看一個流程圖,描述了普通用戶在使用Digg其間Digg的具體模塊運作:

揭秘Digg背后的技術(shù)

其實這中間的操作包括了兩部分:同步和異步

對用戶進(jìn)行即時響應(yīng)的同步操作:同步操作主要表示對用戶請求(包括API請求)的即時快速響應(yīng),包括一些在頁面中通過AJAX方式進(jìn)行的異步請求。這些操作通常要求最長一兩秒的時間內(nèi)就能完成。

離線批量進(jìn)行的異步計算:除了實時響應(yīng)的請求外,有時候還需要進(jìn)行一些批量的計算任務(wù),這些任務(wù)可能是間接的被用戶啟動的,但用戶不會等待這些任務(wù)的完成。這些異步計算通常可能會花費數(shù)秒,數(shù)分鐘甚至幾小時。

這兩部分在Digg中的應(yīng)用方式可以用下面這張圖描述:

揭秘Digg背后的技術(shù)

上面是總體概述,下面一部分我們會深入Digg的各個功能部件進(jìn)行深入研究。

1. 在線Web系統(tǒng)

提供Web頁面服務(wù)及API服務(wù)的部分組成如下:PHP作前端語言構(gòu)建的CMS系統(tǒng),Python構(gòu)建的API服務(wù)器,它們運行在 Tornado 上。它們通過 Thrift 協(xié)議 與主存儲層進(jìn)行交互,很多數(shù)據(jù)會被如Memcached 和Redis 這樣的內(nèi)存緩存系統(tǒng)緩存。

2. 消息系統(tǒng)

Digg 使用 RabbitMQ 作隊列系統(tǒng),將不用同步響應(yīng)的操作放到隊列異步地進(jìn)行。

3. 批量異步處理系統(tǒng)

上面的消息系統(tǒng)是指隊列,而這個指的是具體從隊列取出任務(wù)執(zhí)行的部分。此系統(tǒng)將任務(wù)從隊列中取出,進(jìn)行一定的計算后再對主存儲進(jìn)行操作,對主存儲的操作在實時系統(tǒng)和異步批量系統(tǒng)中都是一樣的。

4. 數(shù)據(jù)存儲層

數(shù)據(jù)存儲層Digg使用了多個產(chǎn)品來完成各種不同的任務(wù),具體列表如下:

Cassandra:對諸如文章、用戶、Digg操作記錄等“Object-like”的信息,都是使用Cassandra來存儲的。我們使用的是Cassandra0.6版本,由于0.6版本并沒有劫持二級索引,于是我們將數(shù)據(jù)通過應(yīng)用層處理后再用它進(jìn)行存儲。比如我們的用戶數(shù)據(jù)層提供通過用戶名及Email地址來查詢用戶信息的接口。

HDFS:主要用到日志信息存儲及分析計算,利用 Hive 操作 Hadoop,進(jìn)行MapReduce計算。

MogileFS:是一個分布式文件存儲系統(tǒng),用以存儲二進(jìn)制的文件,比如用戶頭像,截屏圖片等。當(dāng)然,文件存儲的上層還有統(tǒng)一的CDN。

MySQL:目前我們的文章置頂功能上使用了MySQL存儲一些數(shù)據(jù),因為這一功能需要大量的JOIN操作。與此同時 HBase 好像也是個不錯的考慮。

Redis:由于 Redis 的高性能及其靈活的數(shù)據(jù)結(jié)構(gòu),我們用它來提供對 Digg Streaming API 的存儲,同時我們還用Redis 來構(gòu)建實時瀏覽和點擊計數(shù)器。

SOLR:用來構(gòu)建全文索引系統(tǒng)。以提供對文章內(nèi)容、話題等的全文檢索。

Scribe:日志收集系統(tǒng),比syslog-ng更強大更簡單。用它收集的日志會被放到HDFS進(jìn)行分析計算。

5. 操作系統(tǒng)及配置

Digg runs on Debian stable based GNU/Linux servers which we configure   with Clusto, Puppetand using a configuration system over Zookeeper.

原文鏈接:http://blog.nosqlfan.com/html/1575.html

【編輯推薦】

  1. 揭秘:Quora用了哪些技術(shù) ?
  2. 揭秘:Facebook如何發(fā)布代碼
  3. 揭秘Facebook設(shè)計師是怎么工作的
  4. 優(yōu)秀的PHP開發(fā)者是怎樣煉成的?
  5. 10個免費的PHP腳本資源下載網(wǎng)站推薦
責(zé)任編輯:陳貽新 來源: NoSQLfan
相關(guān)推薦

2015-02-05 10:21:08

vCloud Suit虛擬化技術(shù)

2021-05-26 14:43:50

技術(shù)

2012-11-14 10:51:28

淘寶技術(shù)

2019-11-13 09:46:08

技術(shù)研發(fā)指標(biāo)

2015-11-23 17:44:08

微軟Azure亦非云

2018-11-12 11:47:49

2009-01-04 09:26:44

架構(gòu)Google服務(wù)器

2016-04-21 10:20:27

5GSDN

2015-07-27 09:44:38

Amazon EC2云平臺CoreOS容器

2020-11-17 17:54:33

Google 開發(fā)者技術(shù)

2016-09-07 20:41:38

辦公

2013-06-28 09:23:00

iOSDiggDigg Reader

2025-01-14 14:54:57

2014-11-07 16:31:14

個推

2012-06-29 10:22:36

系統(tǒng)架構(gòu)

2024-10-11 19:17:11

2012-07-26 12:00:50

筆記本

2012-09-24 10:20:24

草根應(yīng)用平臺數(shù)據(jù)
點贊
收藏

51CTO技術(shù)棧公眾號