workerman-chat的安装与测试.md

本文详细介绍了在CentOS7系统中安装及测试Workerman的过程,包括下载源码包、配置防火墙、使用不同模式启动Workerman、进行基本测试的方法。同时,深入解析了debug与daemon启动方式的区别,以及平滑重启的原理和应用,帮助读者掌握Workerman的高效运行技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

centos7下workerman的安装与测试
https://blog.youkuaiyun.com/qq_31749683/article/details/82935252

下载源码包,上传至根目录。

https://www.workerman.net/download/chatzip

//添加开放端口

firewall-cmd --zone=public --add-port=55151/tcp -permanent

关闭防火墙

systemctl stop firewalld

进入目录,运行

php start.php start -d

测试(打开浏览器)

192.168.229.129:55151

常用命令

启动

以debug(调试)方式启动

php start.php start

以daemon(守护进程)方式启动

php start.php start -d

debug和daemon方式区别

1、以debug方式启动,代码中echo、var_dump、print等打印函数会直接输出在终端。

2、以daemon方式启动,代码中echo、var_dump、print等打印会默认重定向到/dev/null文件,可以通过设置Worker::$stdoutFile = '/your/path/file';来设置这个文件路径。

3、以debug方式启动,终端关闭后workerman会随之关闭并退出。

4、以daemon方式启动,终端关闭后workerman继续后台正常运行。

停止

php start.php stop

重启

php start.php restart

平滑重启

php start.php reload

什么是平滑重启?

平滑重启不同于普通的重启,平滑重启可以做到在不影响用户的情况下重启服务,以便重新载入PHP程序,完成业务代码更新。

平滑重启一般应用于业务更新或者版本发布过程中,能够避免因为代码发布重启服务导致的暂时性服务不可用的影响。

注意:只有子进程运行过程中载入的文件支持reload,主进程载入的文件不支持reload。或者说Worker::runAll执行完后workerman运行过程中动态加载的文件支持reload,Worker::runAll执行前就载入的文件代码不支持reload

平滑重启原理

WorkerMan分为主进程和子进程,主进程负责监控子进程,子进程负责接收客户端的连接和连接上发来的请求数据,做相应的处理并返回数据给客户端。当业务代码更新时,其实我们只要更新子进程,便可以达到更新代码的目的。

当WorkerMan主进程收到平滑重启信号时,主进程会向其中一个子进程发送安全退出(让对应进程处理完毕当前请求后才退出)信号,当这个进程退出后,主进程会重新创建一个新的子进程(这个子进程载入了新的PHP代码),然后主进程再次向另外一个旧的进程发送停止命令,这样一个进程一个进程的重启,直到所有旧的进程全部被置换为止。

我们看到平滑重启实际上是让旧的业务进程逐个退出然后并逐个创建新的进程做到的。为了在平滑重启时不影响客用户,这就要求进程中不要保存用户相关的状态信息,即业务进程最好是无状态的,避免由于进程退出导致信息丢失。

查看状态

php start.php status

查看连接状态(需要Workerman版本>=3.5.0)

php start.php connections

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值