设计点赞系统
让我们设计一个类似点赞服务,用户可以对一些上传的视频,图片 或者文字进行评价。类似服务:Youtube.com,weibo.com,bilibili.com的点赞服务
1.系统的要求和目标
计划设计一个满足以下要求的简单版本的点赞系统:
功能要求:
- 用户应该可以对上的内容进行评价 喜欢 like 或者 不喜欢 dislike
- 用户应该可以取消之前的操作 取消喜欢,取消不喜欢。
- 我们的服务应能够记录内容的统计信息,例如喜欢/不喜欢的数据。
非功能需求:
- 该系统应高度可靠,上传的统计信息确保真实可靠。
- 该系统应具有很高的可用性。一致性可能会受到影响(为了可用性);如果用户没有马上看到其评价,也是可以接受的。
挑战:最受欢迎的热门内容, 恶意的重复操作。
3.容量估算和约束
假设我们有13亿总用户,其中8亿是日常活动用户(DAU)。如果用户平均