GatewayWorker基于Workerman开发的一个项目框架,用于快速开发TCP长连接应用,例如app推送服务端、即时IM服务端、游戏服务端、物联网、智能家居等等
Workerman可以看做是一个纯粹的socket类库,可以开发几乎所有的网络应用,不管是TCP的还是UDP的,长连接的还是短连接的。Workerman代码精简,功能强大,使用灵活,能够快速开发出各种网络应用。 (推荐学习: workerman教程)
同时Workerman相比GatewayWorker也更底层,需要开发者有一定的多进程编程经验。
提示
GatewayWorker提供的所有接口都是支持分布式调用的,所以业务代码不需要任何更改,直接就可以分布式部署。
如何分布式GatewayWorker
GatewayWorker通过Register服务来建立划分集群。同一集群使用相同的Register服务ip和端口,即Gateway 和 businessWorker的注册服务地址($gateway->registerAddress $businessworker->registerAddress)指向同一台Register服务。
分布式部署的关键步骤
1、一个集群只需要一台服务器作为Register服务,用于进程启动时协调Gateway与BusinessWorker之间的建立连接通讯,其它服务器可以删掉start_register.php文件或者注释掉里面的代码。
(Register服务本身通讯量极低,一般仅在进程启动时通讯,所以Register服务本身不会成为瓶颈,运行过程中即使Register服务服务器暂时挂掉,也不会对外网服务造成影响,所以Register服务一般不需要做高可用)
2、将Gateway 和 businessWorker的注册服务地址(registerAddress)设置成统一的Register服务地址,也就是步骤1选择的Register服务所在服务器的ip和端口。
3、设置Gateway启动脚本(一般是start_gateway.php)中的lanIp与当前服务器内网ip一致
以上是workerman的集群怎么开发的详细内容。更多信息请关注PHP中文网其他相关文章!