首页 > 度小满--笔试系统设计题
头像
失去梦想的荷包蛋
编辑于 2021-04-11 21:26
+ 关注

度小满--笔试系统设计题

两道系统设计题:

1. API rate Limiting

系统有模块A、B、C、D各模块的处理能力不同,A模块只能支撑100QPS,B能支撑200QPS,C能支撑300QPS,D能支撑400QPS。

设计一个通用限流模块支持A、B、C、D的并发能力。

2. 短链服务

微博或者短信都有单条发送字数的限制,如果需要分享一个长网址,很容易越出限制,短链服务可以将长网址变成短网址,方便传播。

请设计一个短链服务,要求短网址尽可能短,且保证系统安全和并发能力。

这种系统设计题第一次很认真的写了,之前遇到类似的系统设计题是在CVTE,那个时候没什么思路,但今天我感觉写的也不一定好,我从接口的参数、返回值、逻辑,以及使用的技术栈进行考虑。

第一题我的思路:

  1. 参考Java中线程池的思想,我在接口参数中,允许开发者传入最大QPS,公平策略,拒绝策略,队列

  2. 使用Redis、MySQL、Quartz以及Zookeeper作为技术栈

  3. 具体的使用逻辑:因为计算QPS需要根据访问量以及时间快速计算,所以使用Redis

  4. 模块的QPS以及一些日志需要使用MySQL持久化到硬盘中,方便复盘

  5. Quartz跟Zookeeper用来做分布式定时任务的,定时将Redis的数据存入到MySQL中

  6. 当QPS达到最大允许QPS时,启动公平策略、拒绝策略即限流

第二题,

没有思路。。。。随便写了写

全部评论

(2) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

热门推荐