笃行
首页
个人 & 心法
互联网/硬件后台
游戏基础架构
UE 引擎
游戏业务
AI / 大模型
数据结构与算法
机器学习数学
通用基础
GitHub
首页
个人 & 心法
互联网/硬件后台
游戏基础架构
UE 引擎
游戏业务
AI / 大模型
数据结构与算法
机器学习数学
通用基础
GitHub
  • 个人经历 & 后台通用心法

    • 个人简介 & 后台通用心法
    • 面试开场自我介绍叙事脚本

个人简介 & 后台通用心法

从互联网到游戏的后台复习心法

记住,也许只有一种失败——是不善言辞的表达。

一句话心法

分而治之,读写分离。 读有读的优化,写有写的优化。读加缓存、加备份、冷热分离、动静分离;写加分片、减少锁、加缓冲、削峰限流。最后借鉴 MySQL 的 MVCC、JUC 的 CAS、共享锁、独占锁——其本质是一样的。

场景问题

横跨互联网与游戏两个方向,面对的核心问题始终是:如何在不同业务形态下把高性能、高可用、分布式这三件事讲清楚、做扎实。面试的第一分钟要判断什么该讲、什么该藏。

📣 面试当天要用的开场话术,见 面试开场自我介绍叙事脚本(主线:风险把控 + 稳定性,含 60 秒电梯版与引导路线图)。

两段工作经历

互联网期(某互联网安全公司) — 智能硬件后台 · 网络安全 DDOS 攻防。

  • Web 全栈:jQuery → Vue/React、Gulp → WebPack、给 PHP 写扩展
  • CoreDNS / PublicDNS · Erlang 高并发编程 · 内核编译 · ARM 服务器信创

游戏期(某头部游戏大厂)

  • 某短视频中台:工程效能建设 · 流量录制回放 · RPC 框架开源协同小组成员
  • 某头部游戏工作室:某端转手游上云 · 某格斗手游攻坚 · 某 MOBA 手游 · 某射击手游
  • 主要方向:自研 Mesh · 编译优化 · 商业化系统 · 研效工具 · AI 与游戏后台落地

实现方案

开源与团队参与

  • PHP 开发组:早期文档翻译
  • 互联网期:开源 Meshery 服务网格压测框架社区参与
  • 短视频中台期:流量录制回放开源协同小组联席成员
  • 某射击手游:商城/充值/抽奖/VIP 系统负责人,从 0→1 完成商城与支付、付费测试到上线

万能公式:概念 → 场景 → 坑 → 填法

是什么 → 为什么选 → 踩过什么坑 → 怎么填的

举例(分布式锁):

  • 是什么:防止多机同时改同一数据
  • 为什么选:秒杀库存对比 ZK/Redis,选 Redis(快)
  • 踩过坑:长事务导致 Redis 锁提前过期,第二个人闯入
  • 怎么填:紧急引入 Redisson 看门狗,后台自动续期

为什么这么做

🌟 高性能:先问场景,再给方案

  • 秒杀、配置中心 18w QPS、序列化/反序列化压测;有些操作应下沉到客户端本地
  • Kafka 架构与高性能:Rebalance、消息可靠性、顺序性
  • 定位性能瓶颈的顺序:观测→采样→分层排除(网络/磁盘/CPU/锁)
  • 四层 vs 七层负载:为什么不选 Istio?卡在 Envoy 的 3 倍 socket 与 XDS 全量下发;更适合 HTTP,不支持点对点,跨集群还要 CROSS 模块,路由策略有限

🌟 高可用:故障发生时可控、可隔离、可恢复

  • 请求太多?限时、排队、削峰
  • 下游变慢?超时、重试、熔断、隔离
  • 核心服务挂了?降级、冗余、故障转移
  • 重复请求?幂等、防重、状态机
  • 上线前预防?压测、监控、混沌工程、演练、容量评估

🌟 分布式:为什么必须做取舍

要快就得数据不一致——同步等所有机器变慢;要不停工就得允许延迟。这就是 CAP。

分布式概念地图

概念解决什么问题
CAP强一致 / 不卡顿 / 不怕断网 · 三选二
BASE折中方案:允许中间不一致,只要最终一致
Paxos一群随时可能死机的节点,如何达成唯一共识(理论鼻祖)
RaftPaxos 简化版:选 Leader、写流水账(工程可实现)
ZABZooKeeper 专用同步协议(选主+日志复制,同类 Raft)
Gossip像村头大妈传八卦,一对一互传,最后全网都收到(超大集群适用)
一致性哈希扩缩容时只有极少数据需要搬家,大部队不受影响

微服务四大件的职责

组件职责比喻
RPC修路的:让远端服务像本地调用一样
API 网关看门大爷:鉴权、限流、路由,唯一入口
配置中心全校大广播:改配置无需重启,广播一喊立即生效
注册中心动态通讯录:谁开机就登记,谁死机就划掉

为什么别的选择不行

游戏后台 vs 互联网后台的本质

关注点根本不同:

  • 单次响应绝对延迟 vs 整站吞吐/并发承载
  • 游戏选择"单线程无锁":人与人、人与怪状态高度交织,加锁代价太大;游戏是计算密集型,单线程无锁循环延迟最低
  • 互联网选择"多线程/协程":请求彼此独立(无状态),大量时间在等 DB I/O,多协程异步能压榨吞吐

为什么游戏单线程 / 互联网多线程

维度游戏后台互联网后台
状态耦合强状态、强关联(AOE、扣血、吸血、眩晕多线程加锁太重)无状态、弱关联(甲乙买东西无本质关系)
密集类型CPU 计算密集(20~60Hz Tick,视距/碰撞/伤害/寻路)I/O 密集(等 MySQL、Redis、第三方 API)
并发模型单线程无锁 + 帧循环多协程/多线程 + 异步
数据位置几乎全在内存主要在数据库/缓存

Istio 为什么慢?(不是控制面 Istiod,慢的是每个 Pod 的 Envoy Sidecar)

  1. 协议栈"反复横跳":Context Switch + 数据拷贝
  2. 沉重的 L7 解析:认得 HTTP/1.1、HTTP/2、gRPC、Dubbo,能力都是代价
  3. XDS 全量下发:500 服务 × 10 Pod = 每个 Envoy 内存维护 5000 实例;扩缩容一波爆炸

沉淀结论

分布式常见坑

  • 分布式 ID:雪花算法时钟回拨坑——ID 瞬间重复
  • 分布式锁:锁提前过期坑——业务没跑完 Redis 就放锁;需要看门狗续期
  • 分布式事务:TCC/Saga 写补偿代码 + 幂等;MQ 最终一致性最常用;强一致性能差

HTTP/1.1 → HTTP/2 → HTTP/3 的线头阻塞演进

  • HTTP/1.1:一个 TCP 通道内请求串行 → 只能开多 TCP 连接(三次握手 + 慢启动 + 6 连接对 CPU/内存都是压榨)
  • HTTP/2:多路复用 + 二进制分帧 + HPACK 头部压缩 + Server Push;一个 TCP 承载全部请求
  • 痛点:TCP 层线头阻塞——共用滑动窗口,一个包丢,整条流都停摆
  • HTTP/3:底层换 QUIC/UDP,每个"流"独立控制,一个流丢包不影响其他流

面试第一分钟:什么该讲,什么该藏

  • 讲主线:一句话概括每段经历,不背简历
  • 讲关键项目:某端转手游上云 · 某格斗手游 · 某射击手游支付/商城
  • 讲你解决了什么:一致性、复用率、跨集群、多通道 CVM
  • 备选深挖点:Mesh 演进 · Redis 版本 · K8s CNI · Agent Loop(对应本站其他 6 个专题)

软技能心法

技术是入场券,软技能决定天花板。面试官不只看你会不会,更看你能不能带、能不能扛、能不能一起走远。

沟通表达:把复杂讲简单

  • 金字塔原理:先结论后论据。回答问题先给"是/否/结论",再展开"因为一、二、三"。别让人猜你要说什么。
  • STAR 讲项目:Situation(背景)→ Task(目标)→ Action(我做了什么)→ Result(量化结果)。重点在 Action 用"我"不用"我们",Result 一定要有数字。
  • 翻译能力:对上讲价值(省了多少成本、扛住多少 QPS),对下讲方案(怎么落地、边界在哪),对齐比正确更重要。
  • 一句话心法:"如果你不能简单说明白,说明你还没真懂。" —— 能把 Istio 为什么慢讲给非技术的人听懂,才是真懂。

向上管理:让老板放心

  • 对齐预期:接需求先问"什么时候要、优先级多高、验收标准是什么",别闷头做完发现方向错了。
  • 同步节奏:坏消息要早说、主动说。风险提前暴露是负责,出事了才说是背锅。
  • 给选择题不给问答题:汇报问题时带上"方案 A / B + 我的建议 + 需要你拍板的点",别把开放问题直接甩回去。

协作与冲突:技术分歧怎么收场

  • 对事不对人:争的是方案不是输赢。用数据和场景说话——"这个场景下 A 的尾延迟更低",而非"我觉得 A 更好"。
  • 不同意但执行(disagree and commit):充分表达后若团队定了别的方向,就全力把它做好,别阴阳怪气。
  • Code Review 心态:评审是提升代码质量不是挑刺,评论对代码不对作者;被 review 时把"防御"换成"感谢"。

学习与成长:如何保持技术敏锐

  • 第一性原理:新技术先问"它解决了什么老方案解决不了的问题",而非追新。Raft 之于 Paxos、HTTP/3 之于 HTTP/2 都是这个思路。
  • 费曼学习法:学完能给别人讲明白才算学会——本站每个专题的"为什么别的选择不行"就是自测。
  • 广度 + 深度 T 型:一横(知道全貌,能画出分布式概念地图)+ 一竖(至少一个方向能钻到源码/内核级)。
  • 复盘文化:每个线上故障、每次面试失利都写复盘。"同一个坑不踩第二次" 比多学一个框架更值钱。

责任心与 Owner 意识

  • 端到端负责:从需求到上线到线上告警都是我的事,不是"代码提了就完了"。某射击手游商城从 0→1 的底气就来自这。
  • 主动补位:看到没人认领的坑主动接,看到隐患主动提。Owner 不是职级给的,是自己扛出来的。
  • 长期主义:写别人能维护的代码、留能复用的文档、做能沉淀的工具(研效方向的本质)。

面试软技能加分项

  • 反问环节:结尾主动问"团队现在最大的技术挑战是什么""这个岗位半年内最想解决的问题"——展示你在思考"进来能干什么"。
  • 诚实边界:不会就说不会,但补一句"我会这样去查/去学"。装懂被追问穿帮是致命的。
  • 情绪稳定:被连环追问、被质疑方案时,把它当技术讨论而非攻击。稳得住的人,团队才敢把关键系统交给你。

内容来源

综合整理自个人后台从业经历与通用架构心法。

最近更新: 2026/9/10 11:38
Next
面试开场自我介绍叙事脚本