論壇搜索了一番,了解到
gateway收到請(qǐng)求后是通過(guò)socket長(zhǎng)連接異步非阻塞發(fā)送給worker的
問(wèn)題1:常規(guī)而言,一個(gè)gateway進(jìn)程,通常能維持多少連接呢?
問(wèn)題2:這種異步非阻塞 跟 nginx 的那種異步非阻塞 是不是相同的機(jī)制,gateway收到請(qǐng)求后,轉(zhuǎn)發(fā)給worker進(jìn)程,不會(huì)一直阻塞等待worker進(jìn)程返回結(jié)果,轉(zhuǎn)而馬上處理下一個(gè)請(qǐng)求,worker進(jìn)程處理完畢后,會(huì)主動(dòng)通知gateway進(jìn)程,然后gateway進(jìn)程 再把結(jié)果返回給客戶端
問(wèn)題3:gateway 與 worker 進(jìn)程,每個(gè)進(jìn)程里面,都是單線程的嗎?
問(wèn)題4:所有的業(yè)務(wù),都在worker進(jìn)程中處理,那么如果,其中一個(gè)請(qǐng)求,處理時(shí)間很長(zhǎng),這個(gè)時(shí)候,worker進(jìn)程就會(huì)阻塞,直到把這個(gè)請(qǐng)求處理完畢之后,才會(huì)處理下一個(gè)請(qǐng)求吧?
總體而言,感覺跟 nginx & php-fpm 有點(diǎn)點(diǎn)類似,nginx 通過(guò)事件驅(qū)動(dòng)機(jī)制,與 后端的 php-fpm 進(jìn)行異步非阻塞通信,如果 php-fpm 處理一個(gè)請(qǐng)求,稍慢,就會(huì)阻塞下一個(gè)請(qǐng)求處理
以上,這樣理解,不知道對(duì)不對(duì),還勞煩老大指點(diǎn)一二,感激不盡