GatewayWorker 异步非阻塞

evilk

论坛搜索了一番,了解到
gateway收到请求后是通过socket长连接异步非阻塞发送给worker的

问题1:常规而言,一个gateway进程,通常能维持多少连接呢?

问题2:这种异步非阻塞 跟 nginx 的那种异步非阻塞 是不是相同的机制,gateway收到请求后,转发给worker进程,不会一直阻塞等待worker进程返回结果,转而马上处理下一个请求,worker进程处理完毕后,会主动通知gateway进程,然后gateway进程 再把结果返回给客户端

问题3:gateway 与 worker 进程,每个进程里面,都是单线程的吗?

问题4:所有的业务,都在worker进程中处理,那么如果,其中一个请求,处理时间很长,这个时候,worker进程就会阻塞,直到把这个请求处理完毕之后,才会处理下一个请求吧?

总体而言,感觉跟 nginx & php-fpm 有点点类似,nginx 通过事件驱动机制,与 后端的 php-fpm 进行异步非阻塞通信,如果 php-fpm 处理一个请求,稍慢,就会阻塞下一个请求处理

以上,这样理解,不知道对不对,还劳烦老大指点一二,感激不尽

4260 1 1
1个回答

walkor

1、单个gateway进程可以维持上万的tcp连接

2、正确

3、每个进程里都是单线程

4、是的

理解很正确

  • 暂无评论
年代过于久远,无法发表回答
🔝