系统设计案例
文章平均质量分 90
系统设计面试(SDI)案例
xyc1211
我不记得读过的书,就像不记得吃过的饭一样;即便如此,它们还是造就了我。
展开
-
5. 设计即时消息服务
程序将通过“hash(UserID)%1000”找到分区号,然后从中存储/检索数据。如果一个DB分区是4TB,五年将拥有 “3.6PB/4TB~=900” 个分区。由于我们决定将用户的所有消息存储在一个碎片上,因此用户的缓存也应该完全驻留在一台机器上。则获取用户的一系列聊天消息需要对多个分区io,将非常缓慢,因此我们不应采用此方案。目前client只能向活动用户发送消息,如果向脱机状态用户发消息将会返回失败。5亿用户,广播给所有相关的活动用户,将消耗大量资源。不同的客户端,页面大小可能不同,翻译 2022-11-23 14:23:15 · 140 阅读 · 0 评论 -
4.云文件存储服务
上传文件upload对比差异diff同步文件sync。翻译 2022-11-09 14:53:33 · 203 阅读 · 0 评论 -
3.照片分享服务
假设系统年限 10年总用户5亿,活跃用户100万,每个用户关注500个平均每人每天2张照片,每天200万照片,每秒23张每张照片 200kb每天容量 = 2M * 200KB => 400 GB10年 = 400GB * 365 * 10(年)~= 1425TB。翻译 2022-10-28 17:22:00 · 166 阅读 · 0 评论 -
2.web粘贴板
创建key = addPaste(账号,data,自定义url,过期时间)查询getPaste(账号,key)删除deletePaste(账号,key)翻译 2022-10-28 17:19:23 · 160 阅读 · 0 评论 -
1. 短地址服务
写请求/s = 5 亿 /(30 天 * 24 小时 * 3600 秒)= ~200 URLs/s。服务会确保只删除过期的链接,虽然有些过期的链接可以存活更长的时间但永远不会退还给用户。每天缓存热门url = 20% * 17 亿 * 500 字节 = ~170GB。访问者所在的国家/地区、访问日期和时间、指向点击的网页、浏览器或访问页面的平台。请求带宽 = 20K * 500 字节 = ~10 MB/s。存储对象数量 = 5亿 * 5年 * 12月 = 300亿。记录url使用次数,用户位置。翻译 2022-10-28 17:14:52 · 235 阅读 · 0 评论 -
系统设计 流程概述
系统设计 步骤计算指标File sizesTimeQPSDesign Gurus 的 6Step 六步解题法:九章总结的 4S 分析法:原创 2022-10-28 17:08:46 · 710 阅读 · 0 评论