该图显示,一个workerman并发处理多个请求,如果数据库连接单例,而且内存常驻,多个请求都是同一个数据库连接,不会导致数据库错乱吗?fpm中因为每个worker都是单线程只能同时处理一个请求,并且请求结束后销毁资源,下一个请求就是新连接不会有问题
这里是手册的说明
只要单个进程内初始化一次数据库连接,则以后这个进程的所有请求都可以复用这个数据库连接,避免了频繁连接数据库过程中TCP三次握手、 数据库权限验证、断开连接时TCP四次握手的过程,极大的提高了应用程序效率。
不会,worker进程是排队处理请求,就是串行
应该说,在如图的3个worker进程内,使用3个单例模式,这样就行了。(在没有用到协程驱动的情况下)
数据库连接是单例。 但是数据查询是串行的。 不会有问题
不会,worker进程是排队处理请求,就是串行
应该说,在如图的3个worker进程内,使用3个单例模式,这样就行了。(在没有用到协程驱动的情况下)
数据库连接是单例。 但是数据查询是串行的。 不会有问题