功能设计
2023-06-09 11:49:18 0 举报
AI智能生成
功能设计
作者其他创作
大纲/内容
海量数据
判断元素是否出现在集合中
找出出现次数最多的元素
找出出现次数最多的 N 个元素
找出指定范围内未出现的元素
找出指定范围内任意一个未出现的元素
找出重复的元素
求中位数
找出出现 2 次的元素
一致性哈希(Consistent Hashing)
算法实现
数据倾斜
布隆过滤器(Bloom Filter)
算法实现
秒杀系统
架构演进
基本原则
数据尽量少
请求尽量少
路径尽量短
依赖尽量少
避免有单点
架构 0:1w/s
定时上架
架构 1:10w/s
拆分独立系统
独立的集群
热点缓存
限制请求
架构 2:100w/s
动静分离
本地缓存
系统限流
基本设计
动静分离
分离改造
URL 唯一化
分离浏览者相关的因素
分离时间因素
异步化地域因素
去除 Cookie
静态数据
就近缓存
静态化改造
合适的缓存
动态数据
ESI(Edge Side Includes)
CSI(Client Side Includes)
架构部署
实体机单体
统一缓存层
CDN 化
存在问题
处理热点
热点操作
热点数据
运营筛选
提前预测
动态发现
处理热点
优化
限制
隔离
业务隔离
系统隔离
数据隔离
流量削峰
队列缓冲(最通用)
消息队列
其他方式
延迟请求(适合营销活动等)
题库生成
题库推送
图片生成
答题验证
分层过滤(适合交易请求)
读系统
写系统
避免超卖
减库存
下单减库存
付款减库存
预扣库存
解决方案
优化方案
缓存读
缓存写
并发锁优化
应用层排队
数据库层排队
数据库层提交
SQL 合并
性能优化
QPS 影响因素
响应时间
线程数
发现瓶颈
优化系统
减少编码
减少序列化
Java 极致优化
并发读优化
大体思路
发现短板
减少数据
数据分级
减少中间环节
做好应用基线
兜底方案
高可用建设
架构阶段
异地容灾
异步化
分组隔离
避免单点
编码阶段
限流保护
超时处理
异步线程
错误捕获
测试阶段
Beta 阶段
自动化对比测试
发布阶段
分批发布
多版本发布
运行阶段
数据对账
自动降级
过载保护
实时监控报警
故障阶段
快速恢复
故障定位
服务降级
开关控制台
开关列表
开关分组
定时开关
操作记录
权限控制
机器列表
开关 Agent
开关执行
执行日志
开关持久化
容灾机制
服务限流
客户端限流
服务端限流
基于单机 QPS 和线程数限流
根据调用延时保护
服务熔断
定时器
实现方式
双向有序链表
堆
ScheduledExecutorService
时间轮
应用实例
Netty:HashedWheelTimer
Kafka:TimingWheel
层级时间轮
最佳实践
选择合适的定时器
单线程与业务线程池
全局定时器
设置合理的参数
延迟队列
Kafka 实现
Redis 实现
时间轮实现
搜索引擎
搜集
待爬取网页链接文件:links.bin
网页判重文件:bloom_filter.bin
原始网页存储文件:doc_raw.bin
网页链接及其编号的对应文件:doc_id.bin
分析
抽取网页文本信息
分词并创建临时索引
索引
查询
限流降级
基于参数静态限流
否决式限流
计数器
滑动窗口
队列算法
阻塞式限流
漏斗算法
令牌桶算法
基于响应时间动态限流
算法实现
发号器
Snowflake
嵌入应用
独立部署
依赖于系统时间戳
库表分配不均匀
电商
幂等性
处理方法
非幂等:下游系统提供状态查询接口
幂等:下游系统提供幂等支持
全局 id
数据库自增 id
UUID
Snowflakes 算法
唯一约束
HTTP 的幂等性
前端生成并提交 token
请求成功后 302 跳转
表单过期
购物车
状态管理
暂存购物车
用户购物车
对账
短链接生成器
需求评估
存储空间
吞吐量
网络带宽
短 URL 长度
非功能性需求
高可用
高性能
不可预测
整体架构
执行流程
实现方案
URL 生成
单项散列函数
自增长
预生成
重定向响应码
短 URL 预生成文件及预加载
编码存储
并发安全
链表存储
用户自定义短 URL
URL Base64 编码
网页爬虫
需求评估
每月新增存储量
存储空间
系统吞吐量
非功能性需求
伸缩性
健壮性
自动去重
扩展性
遵循协议
总体架构
执行流程
实现方案
URL 调度器
广度优先遍历
优先级分类
自动去重
URL 去重
内容去重
高可用设计
记录状态
线程池
网盘
需求评估
存储空间
吞吐量
带宽负载
非功能需求
大数据量存储
高并发访问
大流量负载
高可靠存储
数据安全性
不重复上传
总体架构
API 服务器
Block 服务器
执行流程
上传文件
下载文件
实现方案
元数据库设计
限速
秒传
短视频
需求评估
日播放量
平均 QPS
同时在播视频数
平均每秒上传视频数
存储空间
网络带宽
总体架构
上传:视频内容处理器
下载:视频搜索引擎、流媒体协议
实现方案
视频存储系统
性能优化
略缩图生成与推荐
0 条评论
下一页