个人水平有限可能有错欢迎大家在评论区指正和讨论。这是我读完王伟杰《从程序员到架构师》的读书笔记。这只是一个总结真正深入学习还是推荐读书文章目录《从程序员到架构师》第二部分「缓存层场景实战」第 4 章 读缓存核心业务痛点核心内容小结第 5 章 写缓存核心业务痛点核心内容小结第 6 章 数据收集核心业务痛点核心内容小结第 7 章 秒杀架构核心业务痛点整体分层解决思路层层拦截流量越上层拦截成本越低小结第二部分整体总结《从程序员到架构师》第二部分「缓存层场景实战」第 4 章 读缓存核心业务痛点电商商品详情页逻辑复杂一次请求执行数十条 SQL页面加载十几秒用户体验极差本地内存缓存硬件成本过高不可行。解决读请求量大、查询耗时十几秒问题。核心内容服务缓存数据库中间件选型对比 Memcached、MongoDB、Redis从数据结构、持久化、集群能力三个维度论证 Redis 更适合业务缓存场景。缓存存取策略标准「先查缓存无数据再查库回写」流程详细拆解三大缓存问题缓存击穿热点 Key 失效并发查库采用分布式锁控制缓存雪崩大批量 Key 同时过期设置随机过期时间缓存穿透非法不存在的 ID 频繁打库空值缓存、参数双层校验两种方案。缓存更新方案先更数据库、再删除缓存延迟双删缓存高可用Redis 集群设计要点负载均衡、分片、数据冗余、故障自动转移、一致性保障五大核心设计。缓存监控监控核心指标命中率、内存、慢查询、连接数与主流开源监控工具。小结读缓存核心作用分摊数据库查询压力将十几秒查询压缩至毫秒级短板是仅解决读压力无法应对短时海量写请求。第 5 章 写缓存核心业务痛点限时预约活动短时间涌入数十万写入请求数据库 TPS 上限不足以承载瞬时洪峰重构分库分表成本太高需要低成本临时方案。解决短期高频写入冲击数据库。核心内容写请求Redis判断缓存数量定时器批量落库数据库写缓存核心思想写入请求先落地高性能缓存层异步批量落库利用缓存高吞吐削峰匀速将数据写入数据库隔离流量峰值。落地实现思路同步 / 异步两种写入模式对比业务选用异步方案配套前端页面延迟提示双重触发机制达到指定条数批量写入 定时周期批量写入避免数据长期滞留缓存存储选择 Redis分析本地内存宕机丢数缺陷批量处理并发控制单线程批量落库规避数据库并发锁竞争异常处理落库失败自动重试依靠 Redis 持久化保障数据不丢失。小结写缓存仅适用于短期临时流量洪峰无法支撑长期超大写入不适合存在资源竞争如库存扣减的业务场景。第 6 章 数据收集核心业务痛点业务需采集海量用户行为埋点日志用于数据分析、费用结算采集流程不能拖慢核心业务接口同时支持实时多维度查询与定时统计。亿万级埋点日志无侵入采集不干扰主业务。核心内容技术选型全链路拆解前端埋点数据先落本地日志避免同步上报拖慢接口采集工具Logstash/Filebeat 读取本地日志缓冲中间件 Kafka利用顺序写入、高吞吐特性承接海量日志实时计算引擎 Flink清洗、补全业务维度数据存储分层ES 用于日志条件检索、HBase 存原始明细、MySQL 存储统计结算数据。整套完整架构流程埋点请求→本地日志→采集器→Kafka→Flink 清洗→多路写入 ES/HBase/MySQL。埋点请求本地日志文件LogstashKafkaApache FlinkElasticsearchHBaseMySQL小结该架构解决长期海量写入场景分离日志采集与核心业务实现日志解耦、海量存储与实时统计是流量日志、用户埋点标准落地架构。第 7 章 秒杀架构核心业务痛点秒杀瞬间涌入海量用户请求流量极易打垮网关、服务、数据库需保证不超卖、订单不丢失、服务不宕机且改造改动尽可能小。综合缓存、限流、削峰等技术的综合高并发场景。整体分层解决思路层层拦截流量越上层拦截成本越低前端 / CDN 层静态资源放 CDN页面控制按钮、时间判断过滤无效刷新请求网关层基于令牌桶限流拦截绝大多数无效流量区分机器人与普通用户缓存层商品库存预存入 Redis通过 decr 原子操作控制库存、防止超卖下单写缓存下单请求先写入 Redis 缓存MQ 异步批量生成订单、扣库削峰支付环节超时未付款自动释放库存保障库存一致性全链路高可用网关、服务、Redis、MQ 全部集群部署配套熔断兜底。底层核心组件网关接入层CDN与前端拦截客户端层普通用户机器人/刷单流量CDN静态缓存 时间校验 防重复点击API网关令牌桶限流 风控拦截 熔断秒杀服务Redis 库存消息队列订单数据库小结秒杀是缓存、限流、写削峰、异步消息的综合落地场景核心思路是流量分层拦截、缓存承载热点、异步落库减轻 DB 压力。第二部分整体总结逻辑递进关系先解决读慢第 4 章读缓存→ 再解决瞬时写洪峰第 5 章写缓存→ 长期海量日志写入第 6 章数据收集→ 融合所有缓存、中间件技术落地最复杂的秒杀高并发场景第 7 章。统一核心思想所有方案均遵循「把压力从数据库转移到吞吐更高的缓存 / 消息中间件」通过缓存分担读写、异步削峰保护核心数据库实现接口提速、系统稳抗大流量。场景边界区分读缓存通用查询优化适用绝大多数查询业务写缓存仅限短期活动瞬时写高峰日志收集长期海量埋点、大数据分析场景秒杀综合性极端高并发场景融合前面全部缓存、异步、限流能力。通用技术栈核心中间件以 Redis、Kafka、Elasticsearch、Flink 为主所有方案附带真实业务踩坑点、异常容错、高可用、监控配套完整落地方案全部来自线上真实项目。