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

基于Django的Disqus如何支持每月80億PV

開發(fā) 架構(gòu) 前端
現(xiàn)在我們Disqus能夠處理一個(gè)月80億PV,每秒處理45000個(gè)請(qǐng)求。在把評(píng)論發(fā)送到很多不同的人的時(shí)候,我們學(xué)到了一些東西。眾所周知 Disqus是用Django來(lái)處理絕大部分的web流量。在使用任何web框架之時(shí),都要在開發(fā)速度 vs 性能、快速上手 vs 定制等之間做取舍。而Disqus更趨向于快速開發(fā)和容易上手,同時(shí)兼顧性能和靈活定制。

現(xiàn)在我們Disqus能夠處理一個(gè)月80億PV,每秒處理45000個(gè)請(qǐng)求。在把評(píng)論發(fā)送到很多不同的人的時(shí)候,我們學(xué)到了一些東西。眾所周知 Disqus是用Django來(lái)處理絕大部分的web流量。在使用任何web框架之時(shí),都要在開發(fā)速度 vs 性能、快速上手 vs 定制等之間做取舍。而Disqus更趨向于快速開發(fā)和容易上手,同時(shí)兼顧性能和靈活定制。

那么為什么web框架慢?

表面上,對(duì)于web框架的第一印象就是慢,因?yàn)樵谀愕膽?yīng)用里有很多你不需要的代碼,這是一個(gè)正常的印象。在實(shí)踐中,緩慢往往不是由于膨脹的框架和語(yǔ) 言選擇造成的。緩慢應(yīng)該是由于你的請(qǐng)求在你的網(wǎng)絡(luò)里與其他的服務(wù)進(jìn)行通信的結(jié)果。在我們的場(chǎng)景下,這些’其他的服務(wù)’是 PostgreSQL、Redis、Cassandra和Memcached。緩慢的數(shù)據(jù)庫(kù)查詢和網(wǎng)絡(luò)延遲通常會(huì)拖累像Django這樣一個(gè)健壯框架的性 能。

為了規(guī)避這些延遲,人們使用各種各樣的緩存技術(shù)。最常見的方法就是使用Django內(nèi)建的cache庫(kù)。

常見的應(yīng)用緩存如下:

  1. data = cache.get('stuff') 
  2. if data is None: 
  3.     data = list(Stuff.objects.all()) 
  4.     cache.set('stuff', data) 
  5. return data 

如果你熟悉Django,這應(yīng)該是個(gè)很常用的模式。這種形式的緩存是非常簡(jiǎn)單明了,并且在大多數(shù)情況下都適用。配合Memcached,它就足夠快了,但是為了響應(yīng)一個(gè)請(qǐng)求仍然有很多工作需要做。

處理每秒45000次請(qǐng)求

我們已經(jīng)對(duì)處理很慢的東西做了緩存。不過在達(dá)到每秒45000次請(qǐng)求的時(shí)候仍然有很多工作需要做。我們可能會(huì)返回JSON,渲染HTML模版,簡(jiǎn)單 的解析HTML或者執(zhí)行Django中間件。問題是,我們希望能夠讓這些工作更快返回,讓Django來(lái)處理它擅長(zhǎng)的:只處理唯一的數(shù)據(jù)。

在每秒45000次請(qǐng)求里面,有多少是唯一的?在這里面有多少請(qǐng)求的返回與下一個(gè)返回不一樣?你真的需要在返回結(jié)果一樣的時(shí)候做重復(fù)的工作嗎?我們需要將整個(gè)HTTP返回緩存起來(lái)以是我們不用做重復(fù)工作。

介紹Varnish

Varnish是神馬?Varnish是工作于負(fù)載均衡和Django后端之間,作為HTTP緩存層。這意味著它能夠?qū)⒄麄€(gè)HTTP返回緩存起來(lái),讓那些不唯一的請(qǐng)求不用命中Django服務(wù)器。

之前,Varnish使我們的一個(gè)黑盒子。我們安裝并且最小程度的配置它,老實(shí)說(shuō),它工作的非常棒。但我覺得我們還能做的更多。

我花了一些時(shí)間來(lái)學(xué)習(xí)更多關(guān)于Varnish和我們能用得上的東西。隨著時(shí)間的過去,我們能夠讓每秒數(shù)千次請(qǐng)求不用命中Django服務(wù)器。今天, 在每秒45000次請(qǐng)求里面,只有15000次請(qǐng)求會(huì)命中我們的應(yīng)用服務(wù)器。剩下的被Varnish接收,它運(yùn)行的非??旌陀行А?/p>

因?yàn)檫@對(duì)我們非常有用,也是一段很好的學(xué)習(xí)經(jīng)歷,這個(gè)主題也成為了我近期的一些演講的主題。

最近,我在芝加哥的DjangoCon大會(huì)上有一個(gè)演講。這個(gè)演講是面向不熟悉Varnish的人,用希望來(lái)鼓舞和驅(qū)動(dòng)他們學(xué)習(xí)更多。對(duì)我而言,我 對(duì)這次演講很興奮,因?yàn)檫@個(gè)主題是很少被應(yīng)用開發(fā)者提到的。這是一個(gè)我希望幾年前就能聽到的演講,希望能夠讓人明白HTTP是如何工作,以及如何使用像 Varnish這樣的工具來(lái)管理它的交互。(HTTP for Great Good)

  在那之前,我出席了在紐約舉辦的VUG7(Varnish 用戶組),并且深入介紹了一些解決我們問題的技巧。這次演講里涉及到很多我們使用的Varnish配置語(yǔ)言。 (Caching is Hard: Varnish @ Disqus)

tl;dr

學(xué)習(xí)Varnish,它不會(huì)解決你全部的問題,但它值得你投入時(shí)間來(lái)學(xué)習(xí)它和評(píng)估它的價(jià)值。

如果這類型的東西很吸引你,并且你跟我一樣也喜歡一周至少5天對(duì)著電腦吼叫,速度聯(lián)系我們,我們?cè)谡腥耍?/p>

(編注:原文評(píng)論也精彩,值得一看。)

補(bǔ)充信息:

Disqus是一家第三方社會(huì)化評(píng)論系統(tǒng),主要為網(wǎng)站主提供評(píng)論托管服務(wù)。WordPress、Blogger、Tumblr等第三方博客平臺(tái)均提 供了Disqus第三方評(píng)論插件。Disqus的主要目標(biāo)是通過提供功能強(qiáng)大的第三評(píng)論系統(tǒng),將當(dāng)前不同網(wǎng)站的相對(duì)孤立、隔絕的評(píng)論系統(tǒng),連接成具有社會(huì) 化特性的大網(wǎng)。通過Disqus評(píng)論系統(tǒng)所具備的評(píng)論回復(fù)通知、評(píng)論分享和熱文分享等社會(huì)化功能,網(wǎng)站主可以有效的提高網(wǎng)站用戶的活躍度和流量。

用戶使用Disqus,在不同網(wǎng)站上評(píng)論,無(wú)需重復(fù)注冊(cè)賬號(hào),只需使用Disqus賬號(hào)或者第三方平臺(tái)賬號(hào),即可方便的進(jìn)行評(píng)論,且所有評(píng)論都會(huì)存 儲(chǔ)、保存在Disqus賬號(hào)后臺(tái),方便隨時(shí)查看、回顧。而且,當(dāng)有用戶回復(fù)自己的評(píng)論時(shí),可以選擇使用郵箱接收相關(guān)信息,保證所有評(píng)論的后續(xù)行為都可以隨 時(shí)掌握。于此同時(shí),Disqus將社交交友功能也很好的融入到了評(píng)論系統(tǒng)中,當(dāng)用戶在某一網(wǎng)站上看到有與自己類似觀點(diǎn)的評(píng)論時(shí),可對(duì)該評(píng)論的評(píng)論者進(jìn)行關(guān) 注,關(guān)注后,該評(píng)論者以后的所有評(píng)論都會(huì)顯示在自己的賬號(hào)后臺(tái)。

原文鏈接:http://blog.disqus.com/post/62187806135/scaling-django-to-8-billion-page-views

譯文鏈接:http://blog.jobbole.com/48887/

責(zé)任編輯:陳四芳 來(lái)源: 博樂在線
相關(guān)推薦

2013-05-29 10:33:16

2012-02-16 18:00:57

Tumblr架構(gòu)

2011-08-16 09:15:19

2009-04-10 13:28:22

Nehalemintel服務(wù)器

2013-02-25 09:42:54

2011-09-06 10:11:52

Cloud云數(shù)據(jù)

2010-11-18 09:11:38

HBase

2023-10-13 07:31:44

2020-03-09 15:00:35

搜狗AI

2018-09-10 08:27:18

登錄Auth0架構(gòu)

2025-03-03 08:46:27

2018-09-27 18:34:08

架構(gòu)Auth0

2025-03-05 08:40:00

RedisJava開發(fā)

2011-05-16 09:07:13

Django

2014-10-11 11:15:05

云平臺(tái)容聯(lián)云通訊

2009-06-17 10:07:01

WAPI國(guó)產(chǎn)標(biāo)準(zhǔn)無(wú)線局域網(wǎng)

2021-01-05 14:45:39

人工智能醫(yī)療AI

2009-06-18 11:41:20

軟件出口

2019-01-03 10:11:05

服務(wù)器PV數(shù)量

2013-05-23 11:28:51

阿里巴巴大數(shù)據(jù)藍(lán)圖
點(diǎn)贊
收藏

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