微信群,QQ群人数上限 发表于 2022-12-21 | 分类于 ---系统设计 | BV13e4y1i7SG 1234567891011121314151617181920212223242526272829303132333435网关尽量简单,不重启。Netty Server 复杂(聊天、搜索、),可能会重启(重新发布)。高并发情况下,大家都在讨论热点事件,消息存储(查询历史聊天记录),MySQL扛不住,是否已接收,异步存,接收方不在线,接收方上线,拉取未接收消息,调用MQ改为已接收,用户经常上下线,经常查数据库?Redis保存离线消息,MQ存未接收,也存Redis一份,MQ更新已接收,Redis删除,接收方半年没上线,Redis存特别多怎么办?Redis可使用 过期时间+条数,只保存三个月的消息,或只保存条数1000条,如果一个月发了一万条,Redis只保存1000条,剩下的怎么看? ===> DB数据库查啊,Redis怎么存消息? zset 添加消息 => 按照消息时间排序, 查询消息 => 最近10条, 删除消息 => 最小时间~最大时间的消息 如果单个key太大,可以按照周,月对同一个接收人设计key, 最近一周的key来设置,第八条删除第一天的key。怎么不丢消息?为什么可以百万人直播间,但不可以万人在线群聊,怎么实现万人群聊?=> 一个人发消息,把消息循环万人,发给对应的 NettyServer,海量消息数据,一定要分库分表,怎么做?=> 一般还要借助大数据 hbase,... 亿级流量钉钉微信后端TIM架构核心(1.0、2.0)