PHP 最常用的 FPM 模式,一个 http 请求一个进程处理,请求完成后进程自动销毁,即使代码质量不高,有内存泄露也没关系,反正执行完成后就立即销毁了。
每个进程之间是独立的,互不干扰也不耦合,访问量大的话就多部署机器,负载均衡打到不同机器上,横向扩展非常容易。
如果用 PHP 自带的 cookie/session 管理容易出问题,因为一个用户可能被路由到不同机器上,那改用 radis 集群统一管理 session 就好了,唯一要解决的就是数据库负载的问题,这就不是 PHP 的问题了,也是其他语言需要解决的。
所以 PHP 应用本身就很容易做到「无状态」、「弹性伸缩」的,当然还需要自己手动运维,但我作为新手,部署过多个 PHP 网站 /API 等应用,部署完成后服务器在那放着基本上一年都不会出问题,只要不访问量突然增,基本上是做到「免运维」了,主要还是因为即使代码中有 bug 或内存泄露,请求完成后自动被重置了,错误不会被积累。
综上,PHP 本身不就是最佳的 serverless 实践吗?各大云厂商都在搞自己的 serverless 平台,看来看去,还是 PHP 原生的机制最好用
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.