小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

網(wǎng)絡(luò)服務(wù)器設(shè)計的模型及一些設(shè)計方法

 vavava 2011-02-16

1. 常用服務(wù)器模型
a.迭代服務(wù)器:只有一個進程/線程處理請求。一般為單進程,加上select多路復(fù)用,非阻塞socket。
b.迭代/并發(fā)混合型服務(wù)器:平時迭代處理,對消耗大的請求并發(fā)處理。處理請求時設(shè)置一個超時,當請求的處理時間超時時,創(chuàng)建一個進程/線程,把處理轉(zhuǎn)給新的進程/線程處理,主進程/線程繼續(xù)處理其他請求。
c.并發(fā)服務(wù)器:多個進程/線程并發(fā)處理請求。

2. 以上三類的服務(wù)器比較
迭代服務(wù)器:最簡單,性能不高。
并發(fā)服務(wù)器:性能較高,但結(jié)構(gòu)相對比較復(fù)雜,開發(fā)難度中等。
迭代/并發(fā)混合型服務(wù)器:性能不錯,但結(jié)構(gòu)通常比單純的并發(fā)服務(wù)器更復(fù)雜。

3. 多進程的并發(fā)服務(wù)器
a. 每個連接fork一個進程:主進程accpet連接,有新連接到來時fork一個進程,然后繼續(xù)accept,等待新的連接。數(shù)據(jù)傳輸由子進程處理,處理完后子進程exit。每個子進程只處理一個連接。
b. Prefork進程:主進程預(yù)先fork一些進程,各個子進程競爭accept,然后處理數(shù)據(jù)傳輸。一個子進程可以處理一個連接,也可以同時處理多個連接(通過select等)。
c. Prefork進程:由父進程accept請求,通過流管道轉(zhuǎn)發(fā)fd到子進程,子進程收到fd后,處理數(shù)據(jù)傳輸,處理結(jié)束后通知父進程。父進程處理的事情比較簡單,容易監(jiān)控子進程。

以上3種方式性能比較:
a.每個連接fork一個進程:處理smtp等狀態(tài)較多,數(shù)據(jù)量比較大時比較簡單實用,總體性能不大好。
b.Prefork進程,各個子進程競爭accept:比較簡單,性能不錯。
c.Prefork進程,由父進程accept請求,通過流管道轉(zhuǎn)發(fā)fd到子進程:代碼復(fù)雜,性能一般不如上一種。

4. 多線程的并發(fā)服務(wù)器
a.每個連接一個線程
b.Prethread多個線程,各個線程互斥accept
c.Prethread多個線程,主線程accept并分發(fā)連接給子線程

5. 多進程與多線程的比較
使用線程的模型:性能比使用進程要高,但代碼比較復(fù)雜,對代碼質(zhì)量要求更高,線程出錯后可能會影響到所有線程,多進程的模式一個進程出錯一般不會影響其他進程。
多線程模型共享數(shù)據(jù)比較簡單有效,多進程模型共享數(shù)據(jù)比較麻煩,效率也不如線程。

6. 一些流行的網(wǎng)絡(luò)服務(wù)器采用的模型

Sendmail: 采用多進程,每個連接fork一個進程.
每個連接fork一個子進程
子進程只處理一個連接
子進程fork一個localmail進程(可以由用戶自己編寫),通過管道把數(shù)據(jù)轉(zhuǎn)給localmail處理,把郵件處理業(yè)務(wù)邏輯獨立出來
優(yōu)點:結(jié)構(gòu)簡單,不用維護復(fù)雜的狀態(tài)機

Apache1.3:采用多進程, prefork進程
子進程競爭accept,每次只處理一個連接
主進程不accept,根據(jù)負載情況調(diào)整子進程數(shù)量
子進程運行一段時間后,主進程會讓它退出,然后創(chuàng)建一個新的進程,防止內(nèi)存泄漏等
主進程通過shared memory監(jiān)控子進程

移動QQ: Prefork多個進程,競爭accept,
典型的一問一答TCP服務(wù)器,結(jié)構(gòu)簡單
每個進程通過select可以同時處理多個連接
采用這種結(jié)構(gòu)的原因有:
每秒請求<1000,可以滿足要求
結(jié)構(gòu)簡單,容易開發(fā)、維護


本文來自CSDN博客,轉(zhuǎn)載請標明出處:http://blog.csdn.net/proad/archive/2008/04/16/2296925.aspx

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多