关于FPM框架和守护进程框架的区别

查表仔

问题描述

如果我有实时通讯的需求,我会选择守护进程框架(swoole或workerman)。
如果我有只写接口的需求,我一般会选择 fpm 框架(tp或者laravel)。

我的理解(如果有错误,烦请大家指出):

1、fpm 是多进程阻塞模型,fpm 进程管理方式有动态、静态、按需三种。一个进程只能处理一个请求,当所有的进程都在处理请求时,那么新来的请求将会阻塞。

2、workerman 也是多进程阻塞模型,一个进程也只能处理一个请求,但是如果调用的是异步非阻塞接口,比如 workerman/redis、workerman/http-client,那么单个进程可以看作是并发处理。

打个比方,领导给我安排了一个项目,需求上是只需要出一些接口就行,不牵扯到即时通讯。在都能实现需求的情况下,我是用 fpm 框架(tp或者laravel)好呢,还是用 守护进程框架(webman) 好呢?

期望得到的回复

其实我想问的就是 守护进程框架 和 fpm 框架的区别。

麻烦大佬们能否明列一下这两种类型框架的详细区别,万分感谢!

1178 4 1
4个回答

liziyu

《PHP cli模式和fpm模式有什么区别、优缺点?》
https://www.zhihu.com/question/390756372

  • 暂无评论
andyzu

我用 webman 写接口

  • 暂无评论
luohonen

不是阻塞模型的问题,而是webman/swoole这种是常驻内存,比fpm非常驻内存天生就快的,而且很多定时任务常驻内存可以直接用,但是fpm的话你还要借助第三方插件来使用,比如supervisor这些,而且常驻内存可以定时心跳维持对数据库的长连接,也可以做连接池,对CURD来说更快,所以webman无论咋测都是fpm框架10倍以上的性能,但是常驻内存会带来进程或内存资源的问题,比fpm要稍微麻烦一些,反正就是要性能高就webman,要省心就用fpm,fpm是你咋用都很难崩。

  • 暂无评论
xiuwang

如果预计后面会有非http相关的内容,比如长连接、队列、定时任务、tcp、udp啥的,或者后期对性能有一定要求,那就一次到位直接用webman。
我感觉webman开发体验和tp laravel差不多,看眼文档直接就能上手了。

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