系统设计(1)

设计系统的第一步是理解问题和确定设计的边界。我们需要问面试官具体问题。

1. 业务量:

询问数量级数适用于大多数的问题,通常同时问是否是初创/大型应用。

设计twitter:DAU数量

设计ID生成器:每秒生成多少ID

设计tiny URL:每天生成多少个

设计爬虫:每月爬虫多少个网站

设计通知系统:每天发送多少通知

设计聊天系统:DAU数量

设计自动补全系统:DAU数量

设计视频分享系统: DAU数量,用户平均看多久

设计云盘:DAU数量

设计支付系统: DAU数量,多少笔交易

设计指标监控告警系统:DAU数量

2. 数据结构存储相关

大多数系统需要确定相关数据类型

设计twitter:纯文本还是包含图片以及视频

设计ID生成器:ID是否只有数字,ID长度

设计tiny URL:URL长度,可以有哪些字符

设计爬虫:仅存储HTML还是包含其中的PDF/图片/WORD

设计聊天系统:发送的消息大小,是否可以发送附件(图片/视频)

设计视频分享系统: 文件格式以及分辨率,上传文件大小限制

设计云盘:文件格式,上传文件大小限制

设计支付系统: 是否可以存储用户数据(信用卡)

设计指标监控告警系统:收集什么指标(CPU/内存),是否收集日志

3. 类型/目的

设计限流器:是客户端限流还是服务器限流,是IP限流还是用户ID限流

设计爬虫:是为了搜索引擎还是数据挖掘

设计通知系统:是邮件,手机推送还是短信,实时系统还是可以延迟

设计twitter:移动应用,网页应用

设计聊天系统:移动应用,网页应用,一对一还是群聊

设计视频分享系统:客户端类型(移动端,网页端,智能电视)

设计云盘:移动端,网页端

设计支付系统分:移动端,网页端

设计指标监控告警系统:如何告警(邮件, 电话)

4. 存储时间相关

设计爬虫:HTML存储多久(5年)

设计twitter:数据存放时间

设计聊天系统:数据保存多久

设计指标监控告警系统:数据存放多久(1年)

5. 具体逻辑

设计爬虫:考虑新增的和更新的网页,考虑处理重复内容

设计通知系统: 用户选择退订,通知的逻辑(客户端触发,定时触发)

设计twitter:什么功能(news feed),添加好友

设计聊天系统:一对一,群聊,显示在线状态,加密

设计自动补全系统: 返回几条,基于流行度还是频率,拼写检测,是否只支持英文,特殊字符

设计视频分享系统:是否加密

设计云盘:是否加密

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值