聚合国内IT技术精华文章,分享IT技术精华,帮助IT从业人士成长

  • 2808402 views阅读

    常见分布式应用系统设计图解(四):输入提示系统

    输入提示系统,指的就是 “typeahead”,比如 Google 搜索,输入一个单词的前几个字母,后面最常用的几个搜索词会被联想出来。有时,它也需要具备一定程度的字符拼写错误自动更正能力。 比如上面这张截图,我输入了 “goog”,在输入框的下方列出了最常见的几个以 goog 开头的搜索短语。 这个功能可以说不是搜索系统的核心功能,而且要求响应一定要非常迅速,...

    分类:技术文章 时间:2020-09-13 01:05 我要评论(0个)

  • 3796484 views阅读

    系统设计中的快速估算技巧

    拿到一堆数据,去做架构也好,设计也好,可行性分析也好,工程上需要的是严谨。但是也有很多场景,比如即时的问题争辩和讨论,我们往往需要的是快速、直接的估算,这样的数据显然不需要非常精确,甚至可以说它一定会非常粗略,我们的目标往往只停留在 “量级” 的级别,但是我们依然可以对方案有一个具体的、量化的认知,这比像 “海量”、“高吞吐”、“低延迟” 这类感性的、描述性的表述还是要清晰和有力得多。 ...

    分类:技术文章 时间:2020-09-06 16:32 我要评论(0个)

  • 3590774 views阅读

    常见分布式应用系统设计图解(三):Top K 系统

    “ Top K 系统 ” 是非常常见的一种子系统,基本上,就是从全量巨大的统计数据中,筛选出数值最大的 K 个来并按序展示。这样的筛选可以是全时间内的,也可以是最近某一段时间内的;可以是全分类的,也可以是某个特定分类的。 具体来说,像 Twitter 的 Trending Topic,微博热搜,视频网站的点击排行,下载排行(可以是日榜、月榜、总榜)等等。这样的系统,在统计数据非常大(...

    分类:技术文章 时间:2020-09-04 04:50 我要评论(0个)

  • 3146687 views阅读

    经典系统设计图解笔记(二):Feed 流系统

    今天记录 Feed 流系统的设计学习笔记,Feed 流常见系统包括 Twitter、微博、Instagram 和抖音等等,它们的特点是,每个用户都是内容创作者,每个用户也都是内容消费者,每个用户看到的内容都是不同的,它取决于用户所关注的用户列表,再结合时间线(有时还包括优先级)将这些用户的最新 feed 聚合,并以流的方式展示出来。 Feed 流系统中,有两种常见的模式,一种...

    分类:技术文章 时间:2020-09-03 02:21 我要评论(0个)

  • 4581117 views阅读

    经典系统设计图解笔记(一):即时聊天系统

    在自己学习各种各样软件系统,特别是分布式系统的过程中,我做了一些笔记,有许多常见的、经典的系统,是非常值得学习和总结的。它们数量不算多,但具有典型意义,可能这样的系统也就十几个。 我在回顾这些笔记的时候发现,有时候一张简单的图,包含最核心的几个设计,就可以很大程度地帮助理解和记忆。所以我想把这些笔记和图解的结合通过文章的形式发出来,预计每篇文章都很短,基本上一张图,加上一点说明性的文...

    分类:技术文章 时间:2020-09-01 03:55 我要评论(0个)

  • 1661454 views阅读

    系统设计的典型分层和涉及的知识点

    作为系统设计学习的一部分,不久前在梳理面试中典型的系统设计问题,发现大部分都可谓有套路可寻。我把思路梳理了一下,简单整理到下面这张图表里面: 对于其中的内容,稍微补充几句: 系统设计需要经验的积累,但也确确实实有章可循。问的问题考察的类型很集中,比如同步、异步,消息push和pull,根据实际问题设计存储的数据结构,对于scalability、availability的认识等等。最喜欢...

    分类:技术文章 时间:2015-08-10 12:30 我要评论(0个)

  • 1621659 views阅读

    读写模型整理笔记

    读模型 1、主键读 最常见的读模型,说是主键,其实也包括其它索引键,或者联合主键。 常见实现:hash,时间复杂度可以接近O(1);B树或变种:时间复杂度接近O(log(n))。 关于B树和变种: B树(B-树):本质上是二叉查找树的升级版,变成了平衡的N叉查找树,这个N的范围根据磁盘一次读取的块大小来调整,这样复杂度log n的底数就从2变成一个更大的数,减少了树的高度。除此以外,还有一...

    分类:技术文章 时间:2015-04-27 23:10 我要评论(0个)