2.web粘贴板

本文档详述了一个粘贴板服务的设计,包括需求边界、接口定义、规模估计、数据模型、概要设计、详细设计及解决瓶颈的策略。服务允许用户上传文本数据并自定义过期时间,具有高可用性和数据安全性,支持高并发的读写操作。通过流量和带宽估算,确定了内存、存储和带宽的需求。设计中,采用了数据分区、缓存、负载均衡和权限控制等策略确保服务性能和可靠性。
摘要由CSDN通过智能技术生成

需求边界

  • 功能要求:

    1. 用户应该能够上传或“粘贴”他们的数据,并获得一个唯一的URL来访问它。支持有限制的自定义url
    2. 用户只能上传文本。不超过10MB
    3. 数据和链接将在特定时间间隔后自动过期;用户还应该能够指定过期时间。最长10年
    4. 用户可以选择为粘贴选择自定义别名。
  • 非功能性要求:

    1. 系统应高度可靠,上传的任何数据都不应丢失。
    2. 该系统应具有高可用性。这是必需的,因为如果我们的服务关闭,用户将无法访问其粘贴。
    3. 用户应该能够以最小的延迟实时访问他们的粘贴。
    4. 粘贴链接不应该是可猜测的(不可预测的)。

接口定义

  1. 创建
    key = addPaste(账号,data,自定义url,过期时间)
  2. 查询
    getPaste(账号,key)
  3. 删除
    deletePaste(账号,key)

规模估计

流量

每天100万写 = 1M,500万读 = 5M

写/s = 1M / (24 * 3600) ~= 12条
读/s = 5M / (24 * 3600) ~= 58条

带宽

写带宽/s = 12 * 10K = 120K
读带宽/s = 58 * 10k = 0.6M

存储

10年=1M * 365 * 10~=3.6G 条
每人不超过10M,
每次约10K

粘贴内容

每天 = 10K * 1M ~= 10G
10年 = 10K * 3.6G ~= 36T

urlKey

索引用6位base64足够 : 64^6 ~= 68G > 3.6G
占用存储 = 3.6G * 6 ~= 22G

保留空闲空间,采用70%容量模型,存储需求=50TB

内存

28原则,每天热点请求存入缓存
= 5M * 0.2 * 10K = 10G

总计

内存 = 10G
存储 = 50TB
写带宽/s = 120K
读带宽/s = 0.6M
写/s = 12条
读/s = 58条

数据模型

  • 用户表
    userID

  • 粘贴信息表
    urlKey
    dataUrl
    创建时间
    过期时间
    userID

概要设计

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值