两台socket负载均衡,注册服务器如何工作?

mp3aaa

A 机器启动 businessworker ,gateway ,register
B 机器启动 businessworker ,gateway ,register

A机器 businessworker ,gateway 的注册地址写 registerAddress= [A IP:1236, B IP:1236]
B机器 businessworker ,gateway 的注册地址写 registerAddress= [A IP:1236, B IP:1236]

A机器由于一时疏忽 A的 1236端口没有开,但是本地可以访问,内网无法访问

于是出现了一个现象。
当负载均衡把 客户端全部连接到 B机器时
B机器 调用 Gateway::getAllUidList() ; 显示客户端在线
A机器 调用 Gateway::getAllUidList() ; 显示客户端不在线
使用在线查询函数isUidOnline 也是不在线的。

请问为什么会出现这种情况,B访问不到A的注册服务器 , 但是A在查询在线的时候可以查询B的注册服务器? 难道A 只会查询A本机的注册服务? 如果注册服务在C D 上 会出现申请情况?
我想了解 当有多注册服务器时,他的运行原理是如何

778 2 0
2个回答

oliusha

register 只需要运行一个就行了,businessworker 和 gateway 注册到同一个 register。
多注册服务器,参考:https://www.workerman.net/q/6740

  • 暂无评论
zkchuck

register只能有一个

  • zkchuck 2022-09-21

    如果需要分布式部署
    应该是
    A:部署register B:部署gateway 和business
    或者
    A:部署register B:部署gateway C:部署business

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