系统设计
一的三次方
这个作者很懒,什么都没留下…
展开
-
系统设计 | 设计限流器
本文根据educative课程整理的学习笔记,侵删题目设计限流服务(限制范围:集群内的某个API),根据用户请求数量来限制用户请求背景啥是限流器系统过载时,为了服务仍然能正常响应,需要限制(throttle)一些请求;概括地说,限流器的功能是限制实体(用户/机器/ip等)在T时间内可以处理的事件数量;举几个例子:用户每秒只能发一个请求用户每天只能认证失败三次一个ip每天只...原创 2020-03-05 20:26:19 · 998 阅读 · 1 评论 -
系统设计 | Long-Polling vs WebSockets vs Server-Sent Events
技术背景三种浏览器客户端C和服务端之间的通信协议:polling:传统的轮询,客户端定期请求服务端,如果服务端没准备好会产生大量空请求;long-polling:polling的改进版本,服务端没有准备好数据,可以延迟返回;‘HANG GET’,服务端具有‘记忆’功能,当新数据产生后会,S主动请求客户端C,客户端重新发起请求获取数据;当然了,服务端也具有超时机制,超时时间内没准备好...原创 2020-02-15 18:07:50 · 1106 阅读 · 0 评论 -
面试题 | 设计pastebin
题目设计pastebin,用户A输入文本信息,系统生成URL,用户A可以分享这个url给其他用户url有过期时间,过期后无法查看,用户可以指定过期时间url不可以被预测scenario用户500M,日活200M,日信息上传数量200M * 5 = 1B,每条信息会被查看100次, 一条信息1K;写入qps:10K;读qps:1000K日存储1TB,过期时间默认一天,总存储应该还...原创 2020-02-14 15:31:03 · 259 阅读 · 0 评论 -
面试题 | 设计twitter搜索功能
题目现在你是twitter搜索负责人,设计搜索系统,提供图片、文字搜索用户1.5 billion,日活800 million每天新增400 million tweets (每个tweet大小300B)每天搜索次数500M搜索格式包含多个words以及 and/or设计高效存储和查询tweets的系统约束日存储量120GB,月3.6TB,10年432TBtweet数量:...原创 2020-02-14 00:55:43 · 373 阅读 · 0 评论 -
面试题 | 设计youtube
Use Cases上传 视频分享/查看 视频基于title搜索记录视频状态:赞/踩,播放数量评论高可靠高可用AP低时延,不卡顿约束500M用户,DAU 1M单条视频100MB,1M/day,存储=100TB,上传qps=11.3视频 r/w = 100/1, 读qps=1100评论 10M ,每条1KB 存储 10G,qps=110...原创 2020-02-04 20:22:24 · 395 阅读 · 0 评论 -
面试题 | 设计文件托管服务dropbox/google drive
题目Use Cases用户上传/下载文件用户分享文件/文件夹给其他人用户浏览自己账户下的文件同一用户多个终端之间文件同步,一个设备修改文件,其他设备都同步离线编辑功能快照功能,回到文件的任意历史版本约束500M用户, DAU 1M单个用户存储总量默认10GB,扩展可达到TB,根据付费扩容R/W = 100, 每天,每个用户写入(上传)文件(平均1...原创 2020-02-02 11:45:56 · 828 阅读 · 0 评论 -
系统设计 | Ceph 数据分布算法crush
目标crush算法是为了解决分布式存储领域中的数据分布问题,简言之就是数据如何分布在各个节点和磁盘上。针对ceph而言,这里的数据就是PG副本,节点/磁盘对应的是OSD进程事例。难点数据分布有啥难点呢?均匀性:如何保证数据均匀分布?读写负载均匀?集群伸缩:增加或者删除节点,迁移的数据尽量少。适合大规模场景:集群规模大了,元信息就多了,这种场景下的性能问题必须考虑:如何保证元信息...原创 2019-01-07 00:13:14 · 876 阅读 · 1 评论 -
面试题|设计instagram
题目用户可以上传照片,分享照片;关注其他人,亦可以看到自己的和好友的top照片;Use Cases功能性支持用户上传/下载/查看 照片根据名称搜索照片用户关注他人生成和展示信息流,包含所有关注的人的top照片非功能性5. 高可用6. 低时延:信息流产生时延 < 200ms7. AP系统:保可用性,特殊情况用户一段时间看不到照片也是OK的8. 高可靠,上传的照片不能...原创 2020-02-01 19:09:00 · 498 阅读 · 0 评论 -
面试题|短url系统设计
短url系统设计题目Constants设计方法1: counterbase62编码方法2 随机数方法3 MD5scale题目设计短url系统,将长url转换为7字符的短url,并可以根据短url查询原url;www.world.com/abc1234Constants系统MUA以及数据容量预估:MUA:30M数据容量模型:long url : 2KB (2048 charac...原创 2020-01-31 21:42:18 · 582 阅读 · 0 评论 -
缓存问题浅析
背景由于一直接触基础服务,没有做过业务系统,希望结合之前的经验同时站在业务系统的视角,整理一下对缓存的理解。web系统中,缓存可以提高页面加载速度,减少对服务器和存储系统的负载。缓存的本质是空间换时间。这个系统中,分发器先查看请求结果是否在缓存系统中,如果在直接返回结果;不在就需要分配给一个服务器处理,然后将结果放到缓存系统中;缓存在哪里平时见过哪些缓存?客户端缓存:缓存可以在客户端...原创 2019-03-31 23:58:28 · 277 阅读 · 0 评论 -
系统设计 | web架构简介 101
背景如图是现代web应用架构的示意图:Web Architecture 101一次谷歌搜索发生了什么?以访问图片网站Storyblocks为例,谷歌搜索“Strong Beautiful Fog And Sunbeams In The Forest”浏览器请求DNS服务器,获取Storyblocks的ip请求负载均衡器LBLB依据一定策略返回一个真实的web server地址...翻译 2019-03-20 23:35:03 · 278 阅读 · 0 评论 -
系统设计 | 异步 - 背压机制(back pressure)
背景今天看下Applying Back Pressure When Overloaded主要讲的是系统持续过载时的一种处理手段,核心观点限制队列长度(limit the queue size),从而为队列中的任务维持系统高吞吐率和良好的响应时间。Back Pressure,中文叫做背压,大概就是管道满了后给发送者一个反向压力的意思吧。无边界队列的问题系统容量是线程池大小和处理单个事务(...翻译 2019-03-16 09:53:00 · 1982 阅读 · 0 评论 -
如何应对系统设计的面试(上)
提纲挈领地讲解系统设计的几个要点:1 明确需求 2 总体设计 3 组件设计 4 机器规格https://www.puncsky.com/blog/2016-02-13-crack-the-system-design-interview明确需求:功能和扩展性要求总体设计:提纲挈领地画出结构图,LB/反向代理/APP层/服务注册/服务层/存储层组件设计以及交互细节:...翻译 2018-12-16 22:24:21 · 436 阅读 · 0 评论 -
如何应对系统设计的面试2
https://www.puncsky.com/blog/2016-02-13-crack-the-system-design-interviewPart 2: 三个公共主题有三个公共主题适用于所有的系统设计题目,具体是通讯,存储和CAP;1. 通讯组件通讯,涉及到的通讯协议如下:协议工作层特点备注UDP传输层无连接,不可靠TCP传输层连接,可靠...翻译 2019-01-06 22:40:35 · 431 阅读 · 0 评论 -
了解HDFS的关键点
原则CAP技术背景,要解决的问题优势和劣势适用场景核心思想,关键点(副本恢复及其带宽问题/数据分布均衡/负载均衡/集群伸缩/通信)底层原理已有实现及其对比HDFS行动技术背景,目标高可用,面向硬件故障设计的HDFS,故障检测,快速和自动恢复是HDFS最主要的设计目标。高吞吐,可适当牺牲延时。主要场景是数据批处理,非交互式。大规模集群,数据量巨大,不仅单个集群的文件数...翻译 2018-12-30 23:53:18 · 271 阅读 · 0 评论 -
简单理解CAP理论
分布式系统设计时经常提到CAP理论,下面对比真实世界来说明CAP理论。1. “记忆公司”你的新事业(一个存储服务)昨天你老婆非常开心,你能记得她生日还送给她生日礼物;突然你发现一丝商机,人们总忘记重要的事儿,而你的记忆力这么棒,干脆开个公司专门给人记录重要的事情。然后你还打了个广告;记忆公司-永远不会忘记- 你还在为健忘苦恼么,我来为你解忧- 只需拨打555-555-555,告诉我们你需...翻译 2018-12-09 17:20:18 · 362 阅读 · 0 评论 -
系统设计的可扩展性
http://www.lecloud.net/tagged/scalabilityReview:These articles were written in 2011 and based on web servers, so the design theories seem relatively simple today.ClonesServers behind LB shouldn...翻译 2018-12-01 22:41:55 · 506 阅读 · 0 评论