⚡ 大厂后端面试与图解工作台

150题·动态图解版
🏆 得分: 0
进度: 1/32
重置记录

关卡加载中...

请从关卡列表中选择开始实战。

第 1 题 基础 单选题
1 / 32
题目加载中...

🎯 面试官满分标答与架构图解:

快捷题号跳转 (点击直接切题) 0 已答 / 32 题
⚙️ 【动态演示】Golang GMP 调度模型状态流转与 Handoff 剥离演示器
Global RunQ (全局队列) [ G5, G6, G7 ] P1 (逻辑处理器) 本地队列: [ G2, G3, G4 ] mcache 极速无锁内存分配 状态: 正常工作中 M1 (绑定 P1 执行 G1) 正在 CPU 核心上高速运算 M2 (备用空闲物理线程) 休眠等待接管中 (Idle)
💡 调度讲解:当前 P1 本地队列拥有 3 个待运行协程,M1 绑定 P1 正在全速执行 G1,CPU 利用率最高。
🔍 【交互实验】MySQL MVCC 快照读 Read View 水位线动态判定器
拖动滑块模拟不同事务版本
低水位 min_trx_id = 50 (快照前已提交) 活跃未提交 m_ids: [60, 75, 90] 高水位 max_trx_id = 100 (快照后未来事务) 当前检查版本 trx_id: 50
滑动选择记录版本 trx_id: 50
✅ 可见性判定结果:可见! 记录版本 trx_id (50) 等于低水位且已提交,事务可以安全读取该快照数据。

📚 7年资深后端高频核心知识精讲手册

⚡ 1. Golang 并发模型与底层机制

Go 语言高性能核心源于 GMP 调度模型(M:物理线程,P:逻辑处理器,G:轻量协程)。GC 采用并发三色标记法配合 Go 1.8 混合写屏障,将 STW 降低至 1ms 以内。切片扩容在 1.18 之后采用平滑过渡公式(256 容量阈值),通道 Channel 读写关操作严格遵守全网矩阵规则。

🗄️ 2. MySQL 事务、索引与锁机制

InnoDB 采用 2PC 两阶段提交确保 redo log 与 binlog 的崩溃一致性。RR 隔离级别依靠 MVCC Read View(min_trx_id, m_ids, max_trx_id)实现快照读无锁一致性,并利用 Next-Key Lock(行锁+间隙锁,前开后闭)防止幻读。大表深分页严禁直接使用大 LIMIT,应使用延迟关联或游标优化。

🚀 3. Redis 高并发缓存与分布式实战

单线程通过纯内存操作与 epoll 多路复用支撑 10 万+ QPS。双写一致性采用 Cache Aside(先更新 DB,再删除缓存)并利用 Canal 监听 Binlog 投递 MQ 异步重试保障强最终一致。分布式锁加锁必须带唯一 Token,释放锁必须使用 Lua 脚本原子校验,避免误删他人锁。

📬 4. 消息队列 RabbitMQ 与稳定性治理

防丢全链路三闭环:生产端 Confirm 确认模式、Broker 端交换机/队列/消息三持久化并配合 Quorum 集群、消费端关闭 autoAck 改为手动 ACK。消费者端建立消费防重日志表(唯一索引)实现绝对幂等性。