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的集群怎么开发的详细内容。