这是 Beta 探索课程,内容结构、实验步骤和示例可能会继续调整。
消息聚合与清理
点赞需要聚合
点赞比较特殊:一个热门动态可能有上千个赞,如果每个赞都发通知,用户会被淹没。
我采用了合并通知策略:用户看到的点赞通知是
张三 等 15 人点赞了你的动态
而不是 15 条独立的点赞通知。
评论聚合
小李又提出:「同一个人连续评论 5 次,能不能合并成一条通知?」
消息列表(不合并):
- 张三 评论了你的动态(1 分钟前)
- 张三 评论了你的动态(2 分钟前)
- ...
- 张三 评论了你的动态(5 分钟前)
消息列表(合并):
- 张三 评论了你的动态 5 次(刚刚)
我设计了一个聚合策略:同一用户 + 同一动态 + 时间窗口内的评论,聚合成一条。
聚合的实现思路
- 创建通知前检查:是否存在「同用户 + 同动态 + 窗口内」的未聚合消息。
- 有:更新原消息(次数 +1,更新内容与时间)。
- 无:创建新消息。
聚合是「先查后写」,要有索引支撑(用户 + 动态 + 时间)。
消息清理
站内信会一直累积,需要清理机制:
- 定时清理脚本,每天凌晨执行。
- 清理策略:已读且超过 N 天的旧消息。
- 保持表大小可控,避免无限增长。
一句话
消息聚合(相似合并)+ 定时清理(控制增长),让站内信既不淹没用户,又不会无限膨胀。聚合是体验优化,清理是容量治理。
发现内容有问题?
告诉我们哪里需要改进。
