公司托管的服务器, 配置48核心, 128g, 每台上有拆分的几十个项目模块, 模块之间通过http互调
现有模式是多项目共用1000个php-fpm
查询好久, 如果使用workman改造, 只能一个项目起一个master, 每个项目设定的work进程不能太多
因为流量不确定 ,日常上下波动3到5倍, 极端可能10倍, 每项目固定的work数, 问题较大, 无法应对随机突发流量
可不可以像php-fpm, 多项目共用所有work进程, 应对某些项目的突发流量
猜测可以在接收到请求后, 清空所有资源,变量等, 初始化一遍, 做到work进程无状态, 不知道有没有实现的可能性
注:
初始化的开销对我们不是很重要, 没有要求执行很快
尝试workman,是想利用多进程管理, 定时器,socket等, 以及异步处理能力, 以及将来可能有的协程, 简化系统设计, 对速度没过度追求
查看了多种搜索结果
基本都是同系统中的多个子系统, 共用环境 . 由于模块众多, 分属不同团队, 代码管理等不太方便, 对我们不太适用
各模块升级,php版本升级等, 也不可能统一,
所以问下, 有没有可能将work进程改造成无状态, 单台起1000个进程, 供多个项目使用, 应对随机流量
workerman实现fastcgi协议?
查到了这个:
https://www.workerman.net/a/1375
我的需求可能更简单一点, 不需要支持 fastcgi协议,
只需要 , 每个请求,有一个干净的work进程处理
k8s 的自动扩缩容 服务非常契合你的需求,可以考虑下
架构太复杂了, 对运维要求能力较高, 由fpm模式切到k8s方案, 感觉不如fpm切到golang简单
切到golang都感觉有些变动太大, 看看workman能不能实现需求