设计点赞系统

本文详细介绍了如何设计一个点赞系统,包括系统需求、容量估算、API设计、架构设计、数据库架构以及应对高并发和数据冷热分离的策略。系统需支持用户对内容的喜欢和不喜欢操作,并能处理海量数据和高并发请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

设计点赞系统
让我们设计一个类似点赞服务,用户可以对一些上传的视频,图片 或者文字进行评价。类似服务:Youtube.com,weibo.com,bilibili.com的点赞服务

1.系统的要求和目标

计划设计一个满足以下要求的简单版本的点赞系统:

功能要求

  1. 用户应该可以对上的内容进行评价 喜欢 like 或者 不喜欢 dislike
  2. 用户应该可以取消之前的操作 取消喜欢,取消不喜欢。
  3. 我们的服务应能够记录内容的统计信息,例如喜欢/不喜欢的数据。

非功能需求

  1. 该系统应高度可靠,上传的统计信息确保真实可靠。
  2. 该系统应具有很高的可用性。一致性可能会受到影响(为了可用性);如果用户没有马上看到其评价,也是可以接受的。

挑战:最受欢迎的热门内容, 恶意的重复操作。

3.容量估算和约束

假设我们有13亿总用户,其中8亿是日常活动用户(DAU)。如果用户平均每天评价15个内容,则
每秒的总数将为:

800M * 15/86400秒 => 138K URL/秒

考虑到观看和评价20:1的比率,每秒的观看内容将为:

20 * 138K URL/秒 => 2760K URL/秒

存储空间估算:不考虑内容大小,只考虑点赞需求。我们需要50个字节来存储带有每条推文的元数据(例如ID,时间戳,用户ID,喜欢的总数,不喜欢的总数等。假设每天每个活动用户用户有10个内容上传。上传的内容所需的总存储空间为:

800M DAU * 10 个内容 * 50 Byte => 400 GB /天

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值