系统设计
32 篇笔记
- 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
- 2.3 如何设计电商详情页historical
1. 电商详情页 1.1. 小型电商 1.1.1. 重建HTML 如果数据量比较小,那么可以采用全面静态化的设计:静态化系统从数据库查出所有的商品数据,使用Thymeleaf+HTML模板渲染成HTML文件,放到Nginx目录中,然后通过Nginx访问。 - 好处:访问效率非常的高 - 坏处:一旦摸
- 3.1 如何设计一个TCP框架historical
1. 需求文档 2. 设计 2.1. 实体关系图 2.2. 类图 3. 实现 3.1. 时序图 3.1.1. 建立连接 3.1.2. 消息处理 4. C10K C10K.md
- 3.3 如何设计一个缓存中间件historical
1. 什么是缓存中间件 - 通用缓存的基础设施 2. 为什么需要缓存中间件 - 为应用层屏蔽缓存的读写、并发安全、缓存淘汰、分布式支持等细节 3. 如何设计缓存组件 3.1. 基本读写 - 比如HashMap能实现O(1)的读写效率 3.2. 并发安全 多线程同时读写缓存会出问题,如何解决? 3.2
- 3.4 如何设计TCP连接池historical
1. 什么是TCP连接池 复用TCP Connection的池子 2. 为什么需要TCP连接池 如何设计池化技术.md - 创建TCP连接需要三次握手,关闭连接需要四次挥手,开销大 - TCP连接数量是有限制的。高并发下主动关闭的一方进入TIME WAIT会耗尽连接数TCP time wait.md
- 3.5 如何设计一个RPC框架historical
1. 什么是RPC - 远程过程调用 - 是一个计算机通信协议 - 这种协议使得client可以像调用本地函数一样去调用server上的函数,即屏蔽了网络通讯的细节 - 采用C/S模式,经典实现是request-response 1.1. 本地函数调用 vs RPC - 本地函数调用:不需要经过网络