为了账号安全,请及时绑定邮箱和手机立即绑定

Socket服务器分布式/集群部署的情况下,2个用户端通信的问题

Socket服务器分布式/集群部署的情况下,2个用户端通信的问题

幕布斯7119047 2019-03-01 10:44:31
1.比如QQ应该不止一台服务器吧,假设用户A链接到服务器A,用户B链接到服务器B,那么当A给B发送消息的时候,服务器之间是怎么处理的? 2.上面的问题其实是研究socket.io的时候的疑问,即:socket.io集群部署的情况下,点对点发消息的场景。官方说是使用redis的pub/sub实现广播。但是我如果是要点对点通信,广播是不是不怎么好,有没有比较好的解决方案? 3.目前Socket的服务器分布式部署的流行解决方案是怎样的?原理是什么 应为自己对这一块不太懂,希望各位大大能帮忙解惑下,不胜感激!
查看完整描述

1 回答

?
眼眸繁星

TA贡献1873条经验 获得超9个赞

如果不考虑就近原则,只考虑平均分配负荷的话。

假设你有2台服务器,则用户按ID分,偶数连到A,奇数连到B;
A收到用户a发给b的消息,发现b的ID是奇数,那么A把消息扔给B,B再把消息扔给b;
所以服务器既要处理用户的连接,也要处理服务器之间的连接,最好分不同的端口分别处理用户和服务器的连接;
先把功能实现出来,再考虑用户量增加的情况下,该怎么分出更多的服务器;当流量更大的时候,再来考虑是否用队列来传输消息。

查看完整回答
反对 回复 2019-03-01
  • 1 回答
  • 0 关注
  • 764 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信