tcp長(zhǎng)短連接、epoll建立服務(wù)器

1、tcp長(zhǎng)短連接:

短連接:短連接一般只會(huì)在 client/server 間傳遞一次讀寫(xiě)操作

建立連接——數(shù)據(jù)傳輸——關(guān)閉連接...建立連接——數(shù)據(jù)傳輸——關(guān)閉連接

長(zhǎng)連接:一次讀寫(xiě)完成,連接不關(guān)閉、長(zhǎng)時(shí)間操作之后client發(fā)起關(guān)閉請(qǐng)求

建立連接——數(shù)據(jù)傳輸...(保持連接)...數(shù)據(jù)傳輸——關(guān)閉連接

優(yōu)缺點(diǎn):長(zhǎng)連接可以省去較多的TCP建立和關(guān)閉的操作,減少浪費(fèi),節(jié)約時(shí)間;對(duì)于頻繁請(qǐng)求資源的客戶(hù)來(lái)說(shuō),較適用長(zhǎng)連接。

短連接對(duì)于服務(wù)器來(lái)說(shuō)管理較為簡(jiǎn)單,存在的連接都是有用的連接,不需要額外的控制手段;但如果客戶(hù)請(qǐng)求頻繁,將在TCP的建立和關(guān)閉操作上浪費(fèi)時(shí)間和帶寬

注意點(diǎn):server端需要關(guān)閉一些長(zhǎng)時(shí)間沒(méi)有讀寫(xiě)事件發(fā)生的連接,這樣可以避免一些惡意連接導(dǎo)致server端服務(wù)受損

如果條件再允許就可以以客戶(hù)端機(jī)器為顆粒度,限制每個(gè)客戶(hù)端的最大長(zhǎng)連接數(shù)

應(yīng)用場(chǎng)景:

長(zhǎng)連接多用于操作頻繁,點(diǎn)對(duì)點(diǎn)的通訊,而且連接數(shù)不能太多情況。

每個(gè)TCP連接都需要三次握手,這需要時(shí)間,如果每個(gè)操作都是先連接,

再操作的話(huà)那么處理速度會(huì)降低很多,所以每個(gè)操作完后都不斷開(kāi),

再次處理時(shí)直接發(fā)送數(shù)據(jù)包就OK了,不用建立TCP連接。

例如:數(shù)據(jù)庫(kù)的連接用長(zhǎng)連接,如果用短連接頻繁的通信會(huì)造成socket錯(cuò)誤,

而且頻繁的socket 創(chuàng)建也是對(duì)資源的浪費(fèi)。

而像WEB網(wǎng)站的http服務(wù)一般都用短鏈接,因?yàn)殚L(zhǎng)連接對(duì)于服務(wù)端來(lái)說(shuō)會(huì)耗費(fèi)一定的資源,

而像WEB網(wǎng)站這么頻繁的成千上萬(wàn)甚至上億客戶(hù)端的連接用短連接會(huì)更省一些資源,

如果用長(zhǎng)連接,而且同時(shí)有成千上萬(wàn)的用戶(hù),如果每個(gè)用戶(hù)都占用一個(gè)連接的話(huà),

那可想而知吧。所以并發(fā)量大,但每個(gè)用戶(hù)無(wú)需頻繁操作情況下需用短連好。

2、單進(jìn)程服務(wù)器-epoll:

IO 多路復(fù)用:就是我們說(shuō)的select,poll,epoll,有些地方也稱(chēng)這種IO方式為event driven IO。

3、小注意點(diǎn):

from gevent import monkey將所有阻塞轉(zhuǎn)為gevent方法

HTTP/1.1長(zhǎng)連接1.0短鏈接

decode("utf-8")解碼、encode("utf-8")編碼

Apache穩(wěn)定、nginx效率高

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容