请教下 单机场景, Gateway的进程数设置多了有什么作用吗?只设置1个会有问题嘛 ?
BusinsessWorker的进程数只设置1个会有什么问题吗?比如设置4个进程数 workerman会自动选一个进程处理业务吗?
没问题,但是同一时间 一个进程只能处理一个 客户端发过来的数据,
进程=软件
多进程,就是你多开了几个qq软件。
因为 php好像没成熟的线程,所以只能用多进程曲线救国,原本的软件是 开一个软件(进程),然后很多子线程处理任务。
不要担心 一个进程只能有一个长连接,因为 连接是保存在内存中的,以及event 网络事件库触发的,不过 你要是在代码里写了阻塞的东东,那么在本次数据处理完成之前,其他的client请求都是在等待的。
怎么解决 所有进程都繁忙,client阻塞的问题呢,这里建议了解下yield用生成器配合 处理阻塞的IO
那一般设置多少个Gateway BusinsessWorker的进程数合适呀
看服务器几核心的,一般跟服务器核心相同即可,还有业务代码有没有阻塞的逻辑,如果有阻塞可以多开几个
补充以下层主的回答 yield 相关的可以看看amphp 硬写yield要考虑很多 直接用现成框架吧
比如Gateway BusinsessWorker的进程数设置cpu核数,那是不是workerman会自动选择一个进程处理业务呢?
他什么时机会自动选择一个进程呢?
没问题,但是同一时间 一个进程只能处理一个 客户端发过来的数据,
进程=软件
多进程,就是你多开了几个qq软件。
因为 php好像没成熟的线程,所以只能用多进程曲线救国,原本的软件是 开一个软件(进程),然后很多子线程处理任务。
不要担心 一个进程只能有一个长连接,因为 连接是保存在内存中的,以及event 网络事件库触发的,不过 你要是在代码里写了阻塞的东东,那么在本次数据处理完成之前,其他的client请求都是在等待的。
怎么解决 所有进程都繁忙,client阻塞的问题呢,这里建议了解下yield用生成器配合 处理阻塞的IO
那一般设置多少个Gateway BusinsessWorker的进程数合适呀
看服务器几核心的,一般跟服务器核心相同即可,还有业务代码有没有阻塞的逻辑,如果有阻塞可以多开几个
补充以下层主的回答 yield 相关的可以看看amphp 硬写yield要考虑很多 直接用现成框架吧
比如Gateway BusinsessWorker的进程数设置cpu核数,那是不是workerman会自动选择一个进程处理业务呢?
他什么时机会自动选择一个进程呢?