直播间人数3-10万 目前是4个gateway服务(最大可扩展6个服务) 16核32G服务器部署 有大量的sendToGroup的场景 请问需要分割分组进行推送消息吗?单个分组向10万人推送信息会造成阻塞吗?
老代码中将直播间固定分割了10个分组,例如:roomid_1 roomid_2 这样的形式 推送的时候直接for循环推送十次 最近发现出现丢包和超时的问题 排查觉得是这个造成的原因。 又担心如果只用一个分组的话sendToGroup会非常慢造成阻塞
这种高在线直播场景,要控制广播频率,要控制广播频率,要控制广播频率,重要的事情说三遍
假设你们10万在线,每秒广播十几条消息,上G的带宽可能都不够用(会大量超时)。 不限制广播量的另外一个副作用就是消息会刷屏,谁都看不清消息。 抖音等直播间,不管是1万还是10万的在线直播间里每秒也就广播发1-2条消息。
所以只要控制好每个直播间里的广播消息量,那么什么问题都解决了。 控制方法例如每个直播间设置一个每秒的定时器,然后从这一秒内产生的消息中选出1-2条广播出去。 这样整个系统每秒的广播量非常可控,带宽也非常可控,接口调用量也可控,就基本没什么问题了。
最后 sendToGroup 直接调用就行,千万不要再分多个小组,否则内部会裂变成多次gateway调用,对性能影响也很大。
非常感谢大佬 非常感谢🙏
好的,学习了
这种高在线直播场景,要控制广播频率,要控制广播频率,要控制广播频率,重要的事情说三遍
假设你们10万在线,每秒广播十几条消息,上G的带宽可能都不够用(会大量超时)。
不限制广播量的另外一个副作用就是消息会刷屏,谁都看不清消息。
抖音等直播间,不管是1万还是10万的在线直播间里每秒也就广播发1-2条消息。
所以只要控制好每个直播间里的广播消息量,那么什么问题都解决了。
控制方法例如每个直播间设置一个每秒的定时器,然后从这一秒内产生的消息中选出1-2条广播出去。
这样整个系统每秒的广播量非常可控,带宽也非常可控,接口调用量也可控,就基本没什么问题了。
最后
sendToGroup 直接调用就行,千万不要再分多个小组,否则内部会裂变成多次gateway调用,对性能影响也很大。
非常感谢大佬 非常感谢🙏
好的,学习了