gateway接到一請(qǐng)求后是異步的轉(zhuǎn)發(fā)給worker的嗎?
在同一機(jī)器時(shí),這兩種進(jìn)程之間是怎樣通信的?
worker如果在在另一機(jī)器,socket是不是異步非阻塞的?
這幾個(gè)問(wèn)題問(wèn)得很好。
worker進(jìn)程中業(yè)務(wù)的阻塞處理會(huì)影響gateway進(jìn)程接受新的請(qǐng)求數(shù)據(jù)嗎?
worker進(jìn)程不會(huì)影響gateway進(jìn)程,即使worker進(jìn)程由于業(yè)務(wù)FatalError等原因掛了退出了,以不會(huì)影響gateway進(jìn)程,會(huì)立即產(chǎn)生一個(gè)新的worker進(jìn)程補(bǔ)上。
gateway接到一請(qǐng)求后是異步的轉(zhuǎn)發(fā)給worker的嗎?
答:gateway收到請(qǐng)求后是通過(guò)socket長(zhǎng)連接異步非阻塞發(fā)送給worker的,同樣worker向gateway發(fā)送的數(shù)據(jù)也是異步非阻塞發(fā)送的。gateway發(fā)給客戶端的數(shù)據(jù)也是異步非阻塞的。
在同一機(jī)器時(shí),這兩種進(jìn)程之間是怎樣通信的?
同一機(jī)器,gateway和worker之間的進(jìn)程是通過(guò)異步非阻塞長(zhǎng)連接socket通訊的。使用的是127.0.0.1 本地回環(huán),速度微妙級(jí)別,極快
worker如果在在另一機(jī)器,socket是不是異步非阻塞的?
不同的機(jī)器,gateway與worker進(jìn)程也是通過(guò)異步非阻塞socket長(zhǎng)連接通訊的,模型和單機(jī)一樣,所以分布式部署很方便。
worker 進(jìn)程如果因?yàn)槌瑫r(shí),重新創(chuàng)建了一個(gè) worker進(jìn)行,對(duì)于client 來(lái)說(shuō) tcp 是始終連接的還是會(huì)斷開(kāi)一次?