作者:手机用户2502860131 | 来源:互联网 | 2023-10-14 14:57
PHP 最常用的 FPM 模式,一个 http 请求一个进程处理,请求完成后进程自动销毁,即使代码质量不高,有内存泄露也没关系,反正执行完成后就立即销毁了。
每个进程之间是独立的,互不干扰也不耦合,访问量大的话就多部署机器,负载均衡打到不同机器上,横向扩展非常容易。
如果用 PHP 自带的 COOKIE/session 管理容易出问题,因为一个用户可能被路由到不同机器上,那改用 radis 集群统一管理 session 就好了,唯一要解决的就是数据库负载的问题,这就不是 PHP 的问题了,也是其他语言需要解决的。
所以 PHP 应用本身就很容易做到「无状态」、「弹性伸缩」的,当然还需要自己手动运维,但我作为新手,部署过多个 PHP 网站 /API 等应用,部署完成后服务器在那放着基本上一年都不会出问题,只要不访问量突然增,基本上是做到「免运维」了,主要还是因为即使代码中有 bug 或内存泄露,请求完成后自动被重置了,错误不会被积累。
综上,PHP 本身不就是最佳的 serverless 实践吗?各大云厂商都在搞自己的 serverless 平台,看来看去,还是 PHP 原生的机制最好用
第 1 条附言 · 20 天前
补充一下,serverless 宣称的优点:「无状态」、「弹性伸缩」、「无需运维」等优点,在 PHP 身上已经实现的很好了,或者说很低的成本就能解决掉
同时加上不同平台的 serverless 服务无法兼容的缺陷(亚马逊的无法迁移到阿里云,阿里云的serverless 无法迁移到腾讯云),PHP 的优势就显得很明显了
PHP 甚至是“函数计算”——每个文件就是一个函数。