群集布属是否正确

heyo

4台服务器
1台配wss提供注册,保留start_register.php
其它三台删除start_register.php,并将注册服务地址改到第1台内网IP上,如下
$gateway->registerAddress = '172.17.20.17:1236';

应用页面向wss注册

现在出现一个问题,第1台TCP特别高,用户数越多,TCP连接数越高,但其它几台TCP值基本不变化,这是不是说明群集没起作用,用户长链接还是集中在第1台机器上?

用应访问是有走负载均衡,但wss未走负载均衡只在第一台上,请问我的配置是否正确

2285 1 0
1个回答

phpcreeper

1、应用页面直接注册WSS意味着就没有走负载均衡,所以需要在在gateway前面加一层LVS, 比如常用的nginx,负载流量均衡的关键在于合理配置调度算法,具体的网上遍地是相关文章;
2、至于分布式部署你写的第一小段也有问题,不止是$gateway->registerAddress要配,$business->registerAddress也一样要配等等,完整部署方法官方手册是超级详细啦:
http://doc2.workerman.net/how-distributed.html

  • heyo 2020-03-20

    $business->registerAddress 也有指向同一地址,看来原来理解错了,以为wss是向主的注册,然后有主的来进行调度分配跟哪台建立长链接的,正确的应该是4台都要配wss,再向负载均衡请求,由负载均衡来调度分配,4台间只是打通信息的推送一至,对吧

  • phpcreeper 2020-03-20

    对的,registerAddress 就是用于保证集群之间所有的gateway和businessworker的通讯;然后gateway前面加一层LVS负载均衡就可以啦。

  • heyo 2020-03-21

    已搞定,非常感谢你的热心帮助

年代过于久远,无法发表回答
×
🔝