三台Linux虚拟机搭建websocket负载均衡解决方案 图文教程

废话不多说,直接上干货。

虚拟域名:www.y1.com

三台虚拟机:192.168.226.136 192.168.226.137 192.168.226.138

 

准备工作:

1、使用VM安装三台虚拟机

2、分别安装宝塔,快速部署好PHP的运行环境

3、三台机器分别安装搭建好workman-chat。

截止到这一步,还有不会操作的同学,请查看之前的文章,或者评论区给我留意。

第一步:第一步本机上邦hosts: 127.0.0.1 www.y1.com

本机nginx上做轮询负载均衡,关键配置代码如下:

监听80端口,负载均衡到三台虚拟机的80端口。

监听7272端口,负载均衡到三台虚拟机的7272端口。

 

 

下一步 三台虚拟机上放行下需要使用的端口:

下一步:136服务器提供Register服务,需要将137和138两台服务器上删掉start_register.php文件或者注释掉里面的代码。

136服务器:

start_register.php文件中代码修改为:

 
 

// register 服务必须是text协议 $register = new Register('text://192.168.226.136:1236');

start_gateway.php文件中代码修改为:

 
 

// 分布式部署时请设置成内网ip(非127.0.0.1) $gateway->lanIp = '192.168.226.136'; // 服务注册地址 $gateway->registerAddress = '192.168.226.136:1236';

start_businessworker.php文件中代码修改为:

 
 

// 服务注册地址 $worker->registerAddress = '192.168.226.136:1236';

 

137和138两天服务器上:

删除start_register.php文件或者注释掉里面代码

start_gateway.php文件中代码修改为:

 
 

// 分布式部署时请设置成内网ip(非127.0.0.1) $gateway->lanIp = '192.168.226.137'; //注意这里是各自服务器的ip, 137 或者138 // 服务注册地址 $gateway->registerAddress = '192.168.226.136:1236';

start_businessworker.php文件中代码修改为:

 
 

// 服务注册地址 $worker->registerAddress = '192.168.226.136:1236';

全部配置成功以后,分别debug模式启动三台服务器上的websocket。

 

136:

 
 

[root@192 Chat]# php /www/wwwroot/www.y1.com/workerman-chat/start.php start Workerman[/www/wwwroot/www.y1.com/workerman-chat/start.php] start in DEBUG mode ------------------------------------------------ WORKERMAN ------------------------------------------------ Workerman version:4.0.6 PHP version:7.2.33 ------------------------------------------------- WORKERS ------------------------------------------------- proto user worker listen processes status tcp root ChatBusinessWorker none 4 [OK] tcp root ChatGateway websocket://0.0.0.0:7272 4 [OK] tcp root Register text://192.168.226.136:1236 1 [OK] tcp root none http://0.0.0.0:55151 2 [OK] ----------------------------------------------------------------------------------------------------------- Press Ctrl+C to stop. Start success.

137:

 
 

[root@192 Chat]# php /www/wwwroot/www.y1.com/workerman-chat/start.php start Workerman[/www/wwwroot/www.y1.com/workerman-chat/start.php] start in DEBUG mode ---------------------------------------------- WORKERMAN ----------------------------------------------- Workerman version:4.0.6 PHP version:7.2.33 ----------------------------------------------- WORKERS ------------------------------------------------ proto user worker listen processes status tcp root ChatBusinessWorker none 4 [OK] tcp root ChatGateway websocket://0.0.0.0:7272 4 [OK] tcp root none http://0.0.0.0:55151 2 [OK] -------------------------------------------------------------------------------------------------------- Press Ctrl+C to stop. Start success.

138:

 
 

[root@192 Chat]# php /www/wwwroot/www.y1.com/workerman-chat/start.php start Workerman[/www/wwwroot/www.y1.com/workerman-chat/start.php] start in DEBUG mode ---------------------------------------------- WORKERMAN ----------------------------------------------- Workerman version:4.0.6 PHP version:7.2.33 ----------------------------------------------- WORKERS ------------------------------------------------ proto user worker listen processes status tcp root ChatBusinessWorker none 4 [OK] tcp root ChatGateway websocket://0.0.0.0:7272 4 [OK] tcp root none http://0.0.0.0:55151 2 [OK] -------------------------------------------------------------------------------------------------------- Press Ctrl+C to stop. Start success.

 

接下来,启动多个浏览器,访问www.y1.com

启动了5个浏览器,登录了5个账号,分别是PHP、Java、Hadoop、Python、Spark

Hadoop负载均衡到136服务器上:

PHP、Spark负载均衡到137服务器上:

Python、Java负载均衡到138服务器上:

到此位置,websocket负载均衡搭建配置完成。

下面继续 一台服务器挂掉的情况:

现在模拟138服务器上websocket关闭,看下Java和Python两个用户是否会掉线

138服务器已经关闭websocket,socket进行也没有了

发现138服务器上的Java和Python已经负载到136服务器上,并且连接通信正常

先把136这台服务器模拟websocket挂掉的情况:

现在5个用户全部都连接到137服务器上啦

收发消息正常:

 

好了,亲爱的小伙伴们,到此,三台服务器搭建集群websocket聊天系统已经部署完成。

感兴趣的小伙伴 赶紧去试试吧 !

公号【程序员小店】-【关注我,每周一篇干货文章,教你工作中的小技巧】

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值