请问如果有几十万在线的客户端连接的话,sendToGroup效率是否高效?

binzhizhu

假设有50w人在线,线上分布式部署,想请问下sendToGroup 和 sendToClientID这两者的使用效率有什么差别?例如CPU、内存、是否会阻塞这种区别?

并发上来的话,如果sendToGroup意味着要广播50w-1次数据给其他客户端

阅读 764
3个回答

walkor

sendXX接口都不会阻塞。sendToGroup性能更好。

  • binzhizhu 2020-08-12

    我刚刚看下一下sendToGroup的源码,发现本质上是在joinGroup的时候,把当前客户端的连接保存起来,也就是每个group映射多个connection,最终sendToGroup的时候实际上是编辑当前group的所有connection,然后走Tcpconnect去下发一次。那么有个问题请教下,例如我们后台需要推送一个商品,当前群聊可能有50w在线客户端,推送商品的时候会先转发到gateway,那如果转发到的gateway处理了20w后出现繁忙或者busy的时候,这时候会怎么处理后面的30w的推送??请教一下

  • binzhizhu 2020-08-12

    我们是分布式部署

binzhizhu

或者说有个场景是:并发连接数现在很高了 ,同时向一个群组推送3个不同的内容(例如商品),群组可能有2w人在线,这种场景能够确保这个群组的所有人都可以同时收到3个推送的商品吗???

  • 暂无评论
walkor

2万在线服务端可以保证同时发出去,但是客户端是否同时收到看具体网络环境。如果客户端网络不好或者服务器带宽不够可能会延迟。

  • 暂无评论