微信群,QQ群人数上限

BV13e4y1i7SG

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
网关尽量简单,不重启。
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)
    在这里插入图片描述