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;
所以服务器既要处理用户的连接,也要处理服务器之间的连接,最好分不同的端口分别处理用户和服务器的连接;
先把功能实现出来,再考虑用户量增加的情况下,该怎么分出更多的服务器;当流量更大的时候,再来考虑是否用队列来传输消息。
添加回答
举报
0/150
提交
取消