首页
下载
文档
问答社区
视频
捐赠
源代码
AI 助理
赞助商
CRMEB
Apipost
腾讯云
微擎
禅道
51Talk
商业产品
Swoole AI 智能文档翻译器
Swoole-Compiler PHP 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
swoole的woker高并发原理是怎样实现的?
看了swoole的源代码,采用了master多个线程reactor接收请求后,将消息通过pipe发送到worker执行,worker中同样采用了reactor接收数据,然后直接调用OnRequest的的回调函数去执行业务代码,之后层层返回给客户端。 其中的逻辑worker的逻辑没看明白,worker接收到数据后,直接回调OnRequest的函数,这个函数是业务代码,是阻塞的,那这里就应该用不了reactor的高效性,【事件通知,不用等待】。 鉴于回调是阻塞的,那么怎么能保证swoole的高效运行呢?类似于nginx-fpm,计算能力在worker层了是吗?这里比fpm快的原因是少了fpm的RINIT, RSHUTDOWN, 框架加载等? 谢谢回答。
发布于6年前 · 0 次浏览 · 来自
提问
s
see7di
看了swoole的源代码,采用了master多个线程reactor接收请求后,将消息通过pipe发送到worker执行,worker中同样采用了reactor接收数据,然后直接调用OnRequest的的回调函数去执行业务代码,之后层层返回给客户端。 其中的逻辑worker的逻辑没看明白,worker接收到数据后,直接回调OnRequest的函数,这个函数是业务代码,是阻塞的,那这里就应该用不了reactor的高效性,【事件通知,不用等待】。 鉴于回调是阻塞的,那么怎么能保证swoole的高效运行呢?类似于nginx-fpm,计算能力在worker层了是吗?这里比fpm快的原因是少了fpm的RINIT, RSHUTDOWN, 框架加载等? 谢谢回答。
赞
0
分享
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
评论
2018-10-07
陈
陈天
同样关注
赞
0
回复
微信公众号
热门内容
暂无回复的问答
- CodeGalaxy K3s 轻量集群节点之间如何实现负载均衡
- 关于openssl CURL WARNING swSSL_connect: SSL_connect(fd=69) failed. Error: error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small[1|394]
- 多个模型如何进行事务异常回退?
- websocket开启wss报错
- 协程tcp服务器如何使用多进程?recv()方法接收信息,打印出来的pid一直是同一个。没用使用到多进程啊。