av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

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

NoSQLFan 簡(jiǎn)要翻譯如下:

成都創(chuàng)新互聯(lián)長(zhǎng)期為上1000+客戶(hù)提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為彭澤企業(yè)提供專(zhuān)業(yè)的成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì),彭澤網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。

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

一個(gè)社會(huì)化的新聞網(wǎng)站

對(duì)個(gè)人來(lái)說(shuō)它又是一個(gè)私人社會(huì)化新聞發(fā)布平臺(tái)

一個(gè)廣告平臺(tái)

一個(gè)開(kāi)放API的平臺(tái)

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

二、Digg 的核心功能

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

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

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

置頂文章功能 – Digg會(huì)定時(shí)將一些熱門(mén)的文章置頂?shù)紻igg首頁(yè),從頁(yè)讓更多人能夠看到。

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

首先我們看一個(gè)流程圖,描述了普通用戶(hù)在使用Digg其間Digg的具體模塊運(yùn)作:

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

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

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

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

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

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

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

2. 消息系統(tǒng)

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

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

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

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

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

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

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

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

MySQL:目前我們的文章置頂功能上使用了MySQL存儲(chǔ)一些數(shù)據(jù),因?yàn)檫@一功能需要大量的JOIN操作。與此同時(shí) HBase 好像也是個(gè)不錯(cuò)的考慮。

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

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

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

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è)計(jì)師是怎么工作的
  4. 優(yōu)秀的PHP開(kāi)發(fā)者是怎樣煉成的?
  5. 10個(gè)免費(fèi)的PHP腳本資源下載網(wǎng)站推薦

標(biāo)題名稱(chēng):揭秘Digg背后的技術(shù)
鏈接分享:http://uogjgqi.cn/article/dpddgii.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問(wèn)/技術(shù)咨詢(xún)/運(yùn)營(yíng)咨詢(xún)/技術(shù)建議/互聯(lián)網(wǎng)交流