需要学习的东西
需要学习的东西
短期
| 天数 | 重点攻克方向 | 必背/必懂的核心知识点 (面试高频) | 实战/模拟动作 (必须做) |
|---|---|---|---|
| Day 1 | Swoole/Hyperf 深度 | 1. 进程模型:Master/Manager/Worker/Task 进程职责及通信方式。 2. 协程原理:协程切换开销、上下文保留、协程陷阱(如全局变量污染)。 3. 内存管理:内存泄漏排查思路, swoole_table vs Redis。4. 热重载:原理及生产环境注意事项。 |
本地启动一个 Hyperf 服务,故意制造内存泄漏或死锁,学会用 swoole_cli -v 和日志分析。 |
| Day 2 | MQTT & 物联网 (IoT) | 1. 协议对比:MQTT vs HTTP vs WebSocket (为什么 IoT 选 MQTT?轻量、发布订阅、QoS)。 2. QoS 级别:0, 1, 2 的区别及应用场景 (如何保证消息不丢失/不重复)。 3. 心跳机制:Keep Alive, Last Will (遗嘱消息)。 4. 海量连接:单机百万连接怎么做?(文件描述符限制、内核调优、网关层设计)。 |
用 PHP 或 Go 写一个简单的 MQTT Publisher/Subscriber Demo (使用 php-mqtt/client 或 paho.mqtt.golang)。理解 Topic 设计。 |
| Day 3 | 高并发架构设计 | 1. 分层架构:接入层 (Nginx/LVS) -> 网关层 -> 业务层 -> 数据层。 2. 流量治理:限流 (令牌桶/漏桶)、熔断、降级策略。 3. 异步解耦:同步转异步的典型场景 (注册、下单、日志)。 4. 缓存策略:多级缓存 (Local + Redis)、缓存一致性方案 (延时双删/Canal)。 |
画一张你过往项目的“高并发架构图”,标注出哪里用了限流,哪里用了缓存,哪里用了异步。 |
| Day 4 | 消息队列 (Kafka/RabbitMQ) | 1. 选型理由:为什么选 Kafka (高吞吐/日志) 或 RabbitMQ (低延迟/可靠性)? 2. 三大难题:消息丢失、重复消费 (幂等性设计)、消息积压 (如何紧急扩容处理)。 3. 顺序消息:如何保证局部有序? 4. 事务消息:最终一致性方案。 |
准备一个“消息积压处理”的剧本:发现积压 -> 临时扩容消费者 -> 丢弃非核心日志 -> 修复 Bug -> 恢复。 |
| Day 5 | 分布式事务 & 数据库 | 1. CAP/BASE:理论在实际中的取舍。 2. 解决方案:TCC、Saga、本地消息表 (最常用)、最大努力通知。 3. 分库分表:拆分键选择、扩容迁移方案、跨库 Join 问题。 4. 锁机制:分布式锁 (Redis/Zookeeper) 的实现与坑 (锁过期/重入)。 |
梳理一个业务场景 (如:支付成功回调),设计一套保证数据最终一致的流程。 |
| Day 6 | Go 语言速成 (针对微服务) | 1. GMP 模型:一句话讲清楚 Goroutine 调度。 2. Channel:有缓冲 vs 无缓冲,Context 控制超时取消。 3. 微服务组件:gRPC (Protobuf) 优势,服务发现。 4. 性能优势:为什么 Go 适合网关和 IoT 接入层? |
用 Go 写一个极简的 gRPC Server,被 PHP 调用。理解混合架构的优势。 |
| Day 7 | 复盘 & 简历优化 | 1. 整理故事:将上述知识点融入你过往的项目经历中。 2. 模拟面试:自问自答,“如果 QPS 突然翻 10 倍,你的系统哪里先挂?怎么救?” |
修改简历:把“熟悉 Swoole”改为“基于 Swoole/Hyperf 重构核心模块,支撑 xx 万长连接”;把“用过 MQTT”改为“设计 IoT 设备接入网关,解决海量设备心跳风暴问题”。 |
长期
| 分类 | 核心知识点 (必须掌握) | 进阶/加分项 (架构师方向) | 推荐学习方式/资源 |
|---|---|---|---|
| PHP 深度 | 1. Hyperf/Swoole 原理:协程切换、事件循环、进程间通信 2. 依赖注入/AOP:深入理解容器实现 3. 性能调优:OpCache, JIT, 内存泄漏排查 |
1. 自定义 Swoole 扩展 (C 语言基础) 2. 自研 RPC 框架原理 3. PHP-FPM 与 Swoole 混合架构演进 |
阅读 Hyperf 源码; 《Swoole 官方文档》; 极客时间《PHP 进阶》 |
| Go 语言 | 1. GMP 模型:调度原理 2. 并发原语:Channel, Mutex, WaitGroup, Context 3. 内存管理:GC 机制,逃逸分析 |
1. 高并发下的 Lock-free 编程 2. Go 性能分析 (pprof) 实战 3. 微服务框架源码 (Go-Zero/Kratos) |
《Go 语言实战》; Go 官方 Blog; 动手写一个 gRPC 服务 |
| 中间件 (Redis/MQ) |
1. Redis:数据结构底层、持久化、集群、分布式锁、缓存一致性 2. Kafka:架构原理、ACK 机制、重平衡、积压处理 |
1. Redis 源码阅读 (SDS, Dict) 2. 消息队列选型对比 (Kafka vs RocketMQ vs Pulsar) 3. 异地多活消息同步方案 |
《Redis 设计与实现》; Kafka 官方文档; 本地搭建集群压测 |
| 搜索/DB | 1. MySQL:索引优化、事务隔离级别、锁机制、Explain 分析 2. ES:倒排索引、Mapping 设计、查询优化 |
1. 分库分表策略 (ShardingSphere) 2. ES 集群扩容与脑裂处理 3. NewSQL (TiDB) 了解 |
《高性能 MySQL》; Elasticsearch 权威指南 |
| 云原生 (DevOps) |
1. Docker:镜像构建优化、网络存储 2. K8s 基础:Pod 生命周期、Service 发现、故障排查命令 |
1. Helm Chart 编写 2. Service Mesh (Istio) 概念 3. 可观测性 (Prometheus + Grafana + SkyWalking) |
K8s 官方文档; 在本地用 Minikube 练习 |
| 系统设计 | 1. 高可用:限流、熔断、降级、超时重试 2. 高并发:缓存策略、异步解耦、读写分离 |
1. CAP/BASE 理论实战 2. 分布式事务方案 (TCC, Saga, 本地消息表) 3. 海量数据分片策略 |
《系统架构设计师教程》; GitHub 上的 "System Design Primer" |
| 软技能 | 1. 技术选型决策能力 2. 故障复盘与根因分析 3. 团队管理与代码 Review |
1. 技术规划与路线图制定 2. 跨部门沟通与协作 3. 成本控制 (云资源优化) |
整理过往项目的“至暗时刻”及解决方案 |

浙公网安备 33010602011771号