WorderMan分布式+阿里SLB负载均衡

最近由于公司年会活动要使用一套抽奖程序,人数比较多,再加上比较重要,所以搞了一下容灾和分布式

假设现在有三台服务器A,B,C,我们的方案是A只用来做Register服务器,B,C开启Business和Gateway服务,1239作为注册端口,1240,1241等作为服务端口,这三台服务器在选择区域的时候,都要和SLB开通区域相同

SLB需要开启所有端口的监听,包括http80和https443,而后分发到几台服务器就好,需要注意云服务器安全组也需要开放对应服务的端口

Workerman直接进行端口监听不需要nginx进行转接

composer安装workerman
composer require workerman/workerman
查看workerman文件中注册文件start_start_register.php中注册端口

// register 必须是text协议
$register = new Register('text://0.0.0.0:1239');

业务服务器中修改start_businessworker.php和start_gateway.php中的registerAddress(注册地址)和 lanIp(本机IP),如果使用的是云服务器的话,IP都要填写内网IP

// 本机ip,分布式部署时使用内网ip
$gateway->lanIp = '127.0.0.1';
// 服务注册地址
$gateway->registerAddress = '172.12.0.1:1239';

然后回到项目根目录,运行命令
php start.php -d
注册服务器

image.png

业务服务器之一
image.png

之后使用工具测试对应服务器websoket是否畅通,成功即部署完成
另建议按照workerman手册优化Linux内核
手册地址
以及优化PHP无用扩展

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容