第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Linux 的最大進程數(shù)大多是 32768,那么以 Linux 構建的服務器是使用哪些技術同時處理百萬級的傳入連接的呢?

Linux 的最大進程數(shù)大多是 32768,那么以 Linux 構建的服務器是使用哪些技術同時處理百萬級的傳入連接的呢?

ibeautiful 2019-05-25 14:00:32
RT。比如說一個工作在最前端的web服務器,總是需要有一個進程去監(jiān)聽一個固定端口的(比如80端口)。為了提高整個服務器的健壯度,服務器accept了一個連接之后,可以立刻fork出子進程來處理這個連接。但是大型服務總有高并發(fā)的需求的,僅僅是簡單的fork輕而易舉就可以超過32768個進程了,求解?各個服務器在底層原理上,實際上是如何如理傳入連接的呢?BTW:我知道可以使用單個或者少量進程然后簡單進行I/O復用來處理服務,但是……嗯,我了解到的一切大型網(wǎng)站并不是這么簡單處理的……但是我也找不出個具體的所以然來……170724-22:31問題補充:我的希望了解的是作為最底層的socket連接上第一個IP之后(通常是DNS第一層解析得到的IP),發(fā)生了什么事情呢?因為不論上層理論是怎么樣的,在所有的實現(xiàn)中,總會有第一個TCPsocket連接到一個IP,而這個IP應該是一個現(xiàn)實存在的操作系統(tǒng)上的一個進程??倳嬖谝粋€可能,就是同時有大量連接訪問這個進程的(假設這個進程稱為A),那么這個進程要怎么處理高并發(fā)呢?我只了解一種方案,就是使用I/O復用。而基礎的I/O復用是基于單一進程的,這樣的服務器架構,對軟件設計要求很高,因為單進程,一旦有一處地方崩潰,就會導致該進程上所有服務掛掉。比較安全的做法,是I/O服用加上進程分流,也就是進程A調用accept()接受了一個TCPsocket之后,立刻通過fork()創(chuàng)建新的進程,將這個連接分流出去。想到了這個思路之后呢,我就遇到題目中提到的這個問題了:Linux進程數(shù)是有限制的??!于是就有了我的這個問題——這要怎么解決呢?170726-0913感謝:感謝各位大大的回答!協(xié)程、線程池、異步I/O都是本人熟悉的領域。不過負載均衡就不是了。看起來我要從這個方面去學習,特別是了解一下nginx的原理吧~~~
查看完整描述

2 回答

?
慕虎7371278

TA貢獻1802條經(jīng)驗 獲得超4個贊

首先現(xiàn)在的大型網(wǎng)站肯定是分布式的,背后是有N個集群的。不可能只靠一臺機器來扛很大的流量。而且題主說的多進程的并發(fā)模型是最最原始的,以現(xiàn)在比較常用的nginx來說,nginx的進程數(shù)是固定的,通過I/O多路復用來實現(xiàn)高并發(fā)。
                            
查看完整回答
反對 回復 2019-05-25
  • 2 回答
  • 0 關注
  • 648 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號