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

部署mod_python模式介紹

開發(fā) 后端
mod_python模式是一種指導(dǎo),在一個良好的指導(dǎo)下,有助于你完成任務(wù),有助于你作出一個優(yōu)良的設(shè)計方案,達到事半功倍的效果。

在介紹mod_python模式之前先像大家說一下它的定義,mod_python模式標志了物件之間隱藏的規(guī)律關(guān)系,而這些物件并不必然是圖像、圖案,也可以是數(shù)字、抽象的關(guān)系、甚至思維的方式。

在這部分開始之前我也想聊聊之前我們一直在講,而且將來還一直會講下去的一個話題――狀態(tài)。 之前我們一直在討論,把用戶的狀態(tài)保存在一個集中的地方,尤其是大規(guī)模集群部署的情況下。

同樣,對于python來說亦是如此,可以說這條金科玉律不只是針對某種針對某個語言,某個框架,它應(yīng)該是更高層次的一種理念。那么我們可以把狀態(tài)放到什么地方呢。目前一些流行的選擇是DB(內(nèi)存表,或?qū)嶓w表),memcached,或者cookie,但這幾種選擇并不是可以隨便互換的。

比如業(yè)務(wù)數(shù)據(jù)較多的情況下,放在cookie中不是很合適,因為有可能超出cookie大小的限制,那么放在memcached中,很遺憾,memcached(使用slab的情況下)中也有它自己的限制。

如果狀態(tài)數(shù)據(jù)大小跨度較大,那么丟數(shù)據(jù)的情況有可能發(fā)生,ahuaxuan很久之前在測試環(huán)境下就碰到過這種情況,由于線上memcached開得較大,所以沒有出現(xiàn)這種情況,關(guān)于這種事件發(fā)生得內(nèi)部原因在ahuaxuan的另外一篇文章中已經(jīng)有了非常詳細的描述。

那么放在DB上呢,顯然,DB的壓力也是我們需要考慮的問題之一。當(dāng)然除了這些主流的選擇之外,我們其他選擇還有很多,比如memcachedb,或者timesten,或者其他等等,但是對于狀態(tài)這種東西。

尤其狀態(tài)數(shù)據(jù)比較重要的情況下,我們一定要深入研究并理解狀態(tài)數(shù)據(jù)的存儲技術(shù),否則可能會遇到我們異想不到的情況,比如很久之前我想破頭也不會想到memcached是LRU是針對某個slab的(而且我還要插一句,LRU的時候其實并不是遍歷slab中的chunk鏈表,而且只遍歷最開始的50個數(shù)據(jù)而已,這樣做純粹是為了速度)。

目前對django來說基本上有兩種部署策略, 第一種是利用mod_python將django運行在apache進程中,還有一種是webserver+fastcgi,這兩種方式各有優(yōu)缺點。在mod_python模式中,我們的webserver必須使用apache,apache在webserver這一領(lǐng)域已經(jīng)獨占鰲頭很多年了,市場占有率也是遠遠的超過其他的webserver。

不過近幾年來,又崛起了幾個其他的webserver,其中比較出名的是ligttpd和nginx,它們都以高性能和低內(nèi)存消耗對apache發(fā)出了挑戰(zhàn),而mod_python是apache的插件,使用這種方式就把我們的webserver限定在apache上了,不過還好mod_python模式也是非常的穩(wěn)定的方案了。

第二種就是webserver+fastcgi,這里的webserver就可以隨意選擇了,大多數(shù)的webserver對提供了對fastcgi的支持,比如我們耳熟能詳?shù)膌ighttpd和nginx,而且據(jù)稱在很多情況下。FastCGI能夠提供比mod_python模式更為優(yōu)越的安全性和效能。針對小型站點,相對于Apache來說FastCGI更為輕量級。據(jù)稱qq的個人空間就是c++加fastcgi實現(xiàn)的。

哦,這樣做的優(yōu)勢在哪里呢,c++的處理速度將會非常的快,也就是說每個fastcgi處理一個請求將會非常快速,比如使用mod_python模式需要50毫秒,c++處理這個請求有可能只需要20毫秒(這個例子未必準確,只是為了說明fastcgi的特性)。雖然在開發(fā)上c++比較麻煩一點,不過在性能上,c++肯定是no1了,從這個例子上我們可以看到,使用fastcgi速度取決于處理一次請求的速度(廢話,哪個不是這樣)。 #t#

我們來看一下使用fastcgi的一般模式:1、WEB服務(wù)器收到客戶端的頁面請求 2、WEB服務(wù)器將這個頁面請求委派給一個FastCGI 外部進程(WEB服務(wù)器于FastCGI之間是通過socket來連接通訊的) 3、FastCGI外部進程得到WEB服務(wù)器委派過來的頁面請求信息后進行處理,并且將處理結(jié)果(動態(tài)頁面內(nèi)容)返回給WEB服務(wù)器 4、Web服務(wù)器將FastCGI返回回來的結(jié)果再轉(zhuǎn)送給客戶端瀏覽器。

對我們來說第3步是我們最需要關(guān)注的,因為第3步的速度嚴重影響著整個性能。由于fastcgi是基于進程的,所以,我們要根據(jù)我們的應(yīng)用來開啟數(shù)量合適的fastcgi進程。多開了是對資源的浪費,少開了就影響性能。

這個類似我們在tomcat中開啟處理請求的thread一樣,只不過tomcat中的request handler thread在配置起來顯然更加方便,因為我們只要關(guān)注線程池中最大的可以容納的線程數(shù),最大空閑線程數(shù)等就行了。

責(zé)任編輯:chenqingxiang 來源: 華夏時報
相關(guān)推薦

2010-02-26 09:03:10

mod_python模

2010-03-24 18:22:21

mod_python

2011-06-23 13:59:05

SEO

2009-09-21 14:50:01

Hibernate部署

2010-04-15 14:33:16

WiMAX無線應(yīng)用模式

2009-12-22 15:55:10

WCF事務(wù)

2014-04-16 13:47:43

SparkYarn

2014-04-16 14:04:34

SparkStandalone

2015-02-27 09:42:40

2021-08-30 15:23:03

prometheus局限性cortex

2010-02-06 10:04:10

Android啟動模式

2009-08-07 14:34:33

C#模式字符串

2009-12-28 16:37:46

WPF異步模式

2010-03-19 12:48:17

無線中繼模式

2009-11-23 20:03:18

ibmdwLotus

2010-06-07 19:57:36

UML和模式應(yīng)用

2010-04-08 10:48:45

無線網(wǎng)橋中繼模式

2009-06-22 16:24:33

JSF框架中使用的設(shè)計

2022-10-28 07:15:26

策略模式使用場景UML

2023-12-05 16:01:12

模板方法設(shè)計模式算法結(jié)構(gòu)
點贊
收藏

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

主站蜘蛛池模板: 中文字幕 视频一区 | 国产一级在线 | 日韩欧美不卡 | 免费国产视频在线观看 | 亚洲一区二区在线视频 | 天天躁日日躁狠狠躁白人 | 久久久久国产精品午夜一区 | 亚洲国产精品久久久久婷婷老年 | 午夜免费电影院 | 99re66在线观看精品热 | 精品欧美一区二区三区 | 国产大片一区 | 成人国产精品久久 | 中文字幕国产视频 | 欧美日韩在线播放 | 国产精品亚洲片在线播放 | 荷兰欧美一级毛片 | 欧美男人天堂 | 日韩毛片免费视频 | 亚洲国产欧美精品 | 免费视频一区二区 | 欧美精品一区二区三区在线播放 | 欧美日韩在线观看一区 | 免费不卡视频 | 成人欧美一区二区三区在线播放 | 99久久精品免费看国产四区 | 国产精品99久久久久久久久久久久 | 国产欧美一区二区久久性色99 | www.色综合| 久久九九99 | 久久久国产一区二区三区 | 日韩精品在线看 | 成人在线观看网站 | 中文字幕在线免费 | 成人在线观看中文字幕 | 色综合久久久 | 国产亚洲欧美在线视频 | 国产91精品久久久久久久网曝门 | av天天看 | 婷婷综合在线 | 91.com在线观看 |