采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,群聊消息分发给群成员这处代码,遇到面试官问了这么一个问题,如果是一个万人群,并且每个群成员又是多端登陆的,这个发送会不会有性能问题?有没有优化的方法?我不知道该怎么回答,老师能解答一下吗?
万人群就得有万人群的方式不适用普通群,万人群可以这样直接广播给所有netty节点,直接分发。
每个netty节点通过http调用根据groupId获取群成员memberId,再从本地的SessionSocketHolder缓存中获取对应的连接写入消息?
不是,有几个手段: 1.聚合下发。服务端等待一段时间的消息之后下发最后一条消息的id给客户端,客户端再通过http的方式拉消息 2.把群消息拆出来一个单独的服务,独立维护群成员的缓存,消息下发时采用广播模式,广播模式在前面章节有介绍 万人群聊的优化究其根本就是想办法聚合,合并。减少消息风暴。
广播模式下每个netty节点都会消费到这条消息,但是有些netty节点不会有这个群成员对应的连接,所以每个netty节点还需要对消费的消息进行一次过滤,只有该netty节点上确实有对应群成员的连接时,才会向连接写消息,通知客户端的sdk通过http的方式拉消息?
登录后可查看更多问答,登录/注册
云通信 / 游戏 / 社交等热门赛道中的必会项目
391 12
514 11
477 11
449 9
528 8