在不了解IM技术的人眼里,群聊是再平常不过的功能而已,万人群聊?应该也不难实现吧?!
确实,从前端功能界面上来看,群聊无非就是个循环向群员发送消息的一对多聊天消息分发模式而已,难在何处?
真实的情况是,群聊是IM系统中的高难度技术点之一。难在哪?难在服务端!从某种角度上说,群聊功能的架构设计和技术实现的品质,可以代表这款IM软件的技术水平。
群聊从后台的技术实现上说,至少有以下难点:
1)如何高效地进行大量群员消息的分发?
2)如何高效地管理群员的在线状态?
3)如何高效地读取群员的在线状态?
4)集群系统中,如何高效地保证群员消息的准确送达?
5)群聊消息该扩散写还是扩散读?
6)如何保证大量群聊消息分发的情况下不影响单聊消息体验?
7)如何应对大群突发事件下的性能负载?
.... ....
目前,市面上主流的IM产品中,微信群是500人上限,QQ群是3000人上限(3000人群是按年付费升级,很贵,不是为一般用户准备的)。一方面,从产品的定义上群成员数量不应过多,另一方面