1. 2.1 如何设计Feed流系统historical

    Feed 流系统设计学习笔记,比较 Pull、Push 与混合 Fan-out 的读写扩散方案。

  2. 2.2 如何设计短URL系统historical

    1. 什么是短URL 把普通网址,转换成比较短的网址 2. 为什么需要短URL 短,便于发布 3. 短URL系统设计 假设短URL系统的URI为 http://t.cn 3.1. 写过程 1. 输入需要转换的长URL http://www.example.com 2. 查询Redis是否存在 www

  3. 2.3 如何设计电商详情页historical

    1. 电商详情页 1.1. 小型电商 1.1.1. 重建HTML 如果数据量比较小,那么可以采用全面静态化的设计:静态化系统从数据库查出所有的商品数据,使用Thymeleaf+HTML模板渲染成HTML文件,放到Nginx目录中,然后通过Nginx访问。 - 好处:访问效率非常的高 - 坏处:一旦摸

  4. 2.6 如何设计榜单系统historical

    排行榜系统设计笔记,保留有序集合、幂等更新、热点榜单、本地缓存、分片与对账等通用设计。

  5. 2.7 如何设计用户注册登录功能historical

    用户注册与登录的历史学习笔记,覆盖登录态、用户名密码、验证码与第三方登录的基本设计思路。

  6. 2.9 如何设计频控系统historical

    通用频控系统设计笔记,公开版保留 Redis 原子计数、批量接口、热 Key、降级与压测方法,移除内部实现细节。

  7. 3.1 如何设计一个TCP框架historical

    1. 需求文档 2. 设计 2.1. 实体关系图 2.2. 类图 3. 实现 3.1. 时序图 3.1.1. 建立连接 3.1.2. 消息处理 4. C10K C10K.md

  8. 3.3 如何设计一个缓存中间件historical

    1. 什么是缓存中间件 - 通用缓存的基础设施 2. 为什么需要缓存中间件 - 为应用层屏蔽缓存的读写、并发安全、缓存淘汰、分布式支持等细节 3. 如何设计缓存组件 3.1. 基本读写 - 比如HashMap能实现O(1)的读写效率 3.2. 并发安全 多线程同时读写缓存会出问题,如何解决? 3.2

  9. 3.4 如何设计TCP连接池historical

    1. 什么是TCP连接池 复用TCP Connection的池子 2. 为什么需要TCP连接池 如何设计池化技术.md - 创建TCP连接需要三次握手,关闭连接需要四次挥手,开销大 - TCP连接数量是有限制的。高并发下主动关闭的一方进入TIME WAIT会耗尽连接数TCP time wait.md

  10. 3.5 如何设计一个RPC框架historical

    1. 什么是RPC - 远程过程调用 - 是一个计算机通信协议 - 这种协议使得client可以像调用本地函数一样去调用server上的函数,即屏蔽了网络通讯的细节 - 采用C/S模式,经典实现是request-response 1.1. 本地函数调用 vs RPC - 本地函数调用:不需要经过网络