语言运行时核心特性实验室 — 高手的分水岭

Python 16 大 + Go 15 大 + Java 15 大 + TypeScript 15 大(含 JavaScript 基础 8) + 性能分析 8 大 + DDIA 数据系统 10 大 + Agent 应用开发 10 大 + 系统架构 17 大(总览+16 机制族)必会图谱 × 106 张架构图, 每张图配: 必知必会知识点 · 生产实战代码(10 场景) · 常见坑(20 条)
共同主题: CPU 调度 · 内存管理 · 垃圾回收 · 并发模型 · 数据结构 · 错误处理 · 工程化 — 运行时如何替你干活, 又在哪里需要你小心
性能分析专题: 时间到底花在哪里 / 谁在等什么 — Linux 四板斧 · 排队地图 · 重试与熔断 · 压测先测炮台 · 容量按"挂 N 台"规划

Python 运行时 · 并发 · 数据流 · 元编程 · 工程化 — 16 大特性 "一把锁换一个简单的世界"

GIL 全局解释器锁

一把大锁串行化整个解释器: 线程模型、ceval 字节码循环、被保护的引用计数; CPU/IO 密集两种命运与五条破局路线。

多线程切换机制free-threading

内存管理与垃圾回收

引用计数(即时回收) + 分代 GC(兜底循环引用) + pymalloc 小对象池; RSS 只涨不降的真相与排查工具链。

refcntweakref__slots__

生成器与迭代协议

yield = 可暂停的函数: 数据逐个流过管道, 内存 3×O(n) → O(1); 流式 ETL / 分页游标 / asyncio 的前身。

__iter__yield fromitertools

asyncio 事件循环

单线程调度器 + 协程协作: epoll 盯着上万 fd, await 即挂起; 唯一的罪是同步阻塞 — 毒药区与解法一览。

Taskgather/TaskGroupto_thread

描述符与装饰器 (元编程)

property/classmethod/ORM 字段的共同底层: 装饰器改函数, 描述符改属性访问, metaclass 改类创建。

@wraps__set_name__查找顺序

uvicorn / gunicorn 部署全景

WSGI vs ASGI、master-worker 信号遥控 (HUP/TERM/USR2)、systemd / Docker / K8s 三种宿主的探针与优雅停机。

UvicornWorkermax_requestspreStop

import 机制与模块系统

一行 import 的真面目: sys.modules 缓存 → sys.path 搜索 → .pyc 编译; 循环导入三种解法与 importtime 冷启动优化。

sys.modules循环导入-X importtime

异常体系与 traceback

BaseException 家族树、try/except/else/finally 执行时序、Exception Group 聚合、raise from 保留根因链。

except*raise fromlogger.exception

类、MRO 与对象模型

一切皆对象: 实例→类→type 元类三层关系、C3 线性化、dataclass / __slots__ / 魔术方法协议表。

MRO__slots__dataclass

类型注解与静态检查

注解默认只是注释: mypy/pyright 静态兜底 + pydantic 运行时校验双通道; Protocol 结构化鸭子类型。

Protocolmypypydantic

多进程 multiprocessing

绕开 GIL 的正解: fork vs spawn 两种出生方式、Pool / SharedMemory / Queue 三件套与序列化边界。

fork/spawnSharedMemorychunksize

字符串与编码

str 是"人话"、bytes 是"电线上的字节": encode/decode 双向管道、码点 vs 字节、mojibake 乱码修复。

encode/decodemojibakef-string

上下文管理器与 with

把"分配→使用→必释放"写成语法: __enter__/__exit__ 协议、ExitStack 动态资源栈、事务/锁/重定向模板。

ExitStackcontextmanagerasync with

闭包、装饰器与 functools

装饰器洋葱模型、闭包细胞与延迟绑定坑、lru_cache / cached_property / partial / singledispatch 武器库。

wrapslru_cachepartial

logging 日志体系

Logger 是一棵树: 层级传播到 root, Handler/Formatter 决定去哪长啥样; 轮转 / 多进程 / 结构化三条命脉。

dictConfigQueueHandlerJSON 日志

序列化: pickle / JSON / msgpack

对象与字节的三条通道: pickle 深而危险 (__reduce__ RCE)、JSON 类型磨损、orjson / msgpack 提速降带宽。

__reduce__orjsonmodel_dump
Go 调度 · 并发原语 · 数据结构 · 错误与上下文 · 工具链 — 15 大特性 "用简单抽象榨干多核"

GMP 协程调度模型

G(2KB 协程)/P(执行凭证)/M(内核线程) 三层解耦; work stealing · syscall hand-off · SIGURG 信号抢占。

GOMAXPROCSrunnext61 tick

Channel 与 select

CSP 模型: hchan 内部结构、close 广播语义、select 随机分派; 扇入/worker pool/超时/取消四大惯用法。

hchannil channelctx.Done

逃逸分析

编译期决定变量住栈还是堆: 六大逃逸触发器、-gcflags='-m' 验证、sync.Pool 复用 — P99 毛刺的源头治理。

栈vs堆interface装箱pprof

GC 三色标记与写屏障

并发标记-清除: 两次亚毫秒 STW + 混合写屏障; GOGC/GOMEMLIMIT 的 pacer 账本与"内存翻倍"真相。

三色不变式GOGCGOMEMLIMIT

sync 原语与内存模型

数据竞争是未定义行为不是概率问题: Mutex/atomic/sync.Map 全家福、happens-before 规则、-race 工作流。

race detectorHB 边选型决策

interface 与动态派发

隐式契约的内存真相: eface/iface 两机器字、itab 方法表两跳寻址、typed-nil 陷阱与"小接口哲学"。

itabtyped nil方法集

defer / panic / recover

LIFO 栈式收尾协议: 参数立即求值 vs 闭包引用、panic 沿帧展开、recover 只在 defer 直接调用里有效。

LIFOrecover中间件兜底

slice 切片底层

ptr/len/cap 三元视图: append 扩容三部曲、共享 backing array 暗雷、三索引切片 s[a:b:c] 限容隔离。

backing arrayappends[a:b:c]

map 底层与并发

8 槽桶 + tophash + 渐进式搬迁; 并发读写是 fatal error 不可 recover — sync.Map / 分片锁的正确选型。

bmapfatal errorsync.Map

错误处理哲学

error 是值: %w 包装链、errors.Is/As 沿 Unwrap 查找、哨兵 vs 类型化错误、"哪层知道怎么处理"的设计。

%werrors.Is自定义错误

context 取消传播

请求的一根生命线: 树形取消广播、超时预算沿调用链层层递减、value 只放请求元数据不放业务参数。

WithTimeoutDone()取消树

并发模式实战

goroutine + channel 的乐高: worker pool / pipeline / fan-in-fan-out、errgroup 首错取消、信号量限流。

errgroupworker poolsemaphore

time 与定时器

双时钟 (wall 可回拨 / monotonic 只前进)、time.After 循环泄漏现场、Timer Reset 三步安全法、2006 布局速记。

单调时钟ResetTicker

pprof 性能分析

CPU / heap / goroutine / mutex / block 五类画像各自回答什么问题; top→list→火焰图三板斧与 bench 防回退。

go tool pprof-basebenchstat

Modules 与构建发布

MVS 最小版本选择、go.sum 校验与 GOPRIVATE、交叉编译一行命令、ldflags 注入版本号、vendor 两态。

MVSGOPRIVATEldflags
Java JVM · 并发 · 集合与 IO · 泛型反射 · 现代特性 — 15 大特性 "把最难的两件事交给虚拟机"

JVM 运行时与分代 GC

运行时数据区 (Eden/Survivor/Old + 线程私有)、Minor/Full GC、JIT 分层编译; OOM 排查与容器堆大小实战。

堆分代G1/ZGC逃逸分析

类加载与双亲委派

生命周期五阶段、三层加载器、双亲委派的安全与唯一性; SPI/Tomcat 如何打破; NoSuchMethodError 排查。

<clinit>类身份jar冲突

JMM 与 volatile

主内存/工作内存抽象、三性对号入座、happens-before 规则; volatile 的能与不能, DCL 为什么必须 volatile。

可见性DCLLongAdder

线程池 ThreadPoolExecutor

七参数、反直觉执行流 (core→队列→max→拒绝)、四种拒绝策略; 为什么禁用 Executors, 监控与动态调参。

有界队列CallerRuns动态调参

synchronized 锁升级

对象内存布局与 Mark Word 五状态; 偏向→轻量级→重量级升级路径; 锁消除/粗化与 AQS 一句话。

Mark Wordmonitor锁粒度

集合框架与 HashMap 底层

List/Set/Map 选型决策树; HashMap 数组→链表→红黑树演化、fail-fast、ConcurrentHashMap 分段并发。

树化fail-fastCHM

String 与常量池

不可变是刻意设计: 常量池复用、编译期折叠 vs 运行期 StringBuilder、compact strings、循环拼接灾难。

常量池StringBuilderintern

BIO / NIO 与 Netty 模型

从"一连接一线程"到 Selector 多路复用; Buffer 状态机、堆外内存、零拷贝 transferTo 与 Netty boss/worker。

SelectorDirectBuffertransferTo

Stream API 与函数式

中间操作只注册不执行, 终端操作一次点火逐元素穿全链; parallelStream 的公共池是全 JVM 共享的。

惰性求值groupingBycommonPool

泛型与类型擦除

泛型只活在编译期: 擦除后字节码没有 T、桥方法、new T()/T.class 为什么不行、PECS 通配符口诀。

擦除PECSTypeToken

现代特性: record / sealed

一行 record 葬礼 40 行样板 DTO; sealed 封闭继承域 + switch 模式匹配穷尽检查, 新子类漏分支编译期报错。

recordsealedswitch 表达式

异常体系与实践

Error/受检/非受检三分法、try-with-resources 的 suppressed、异常性能账单与 @ControllerAdvice 全局兜底。

ControllerAdvicesuppressedfillInStackTrace

反射与动态代理

框架的魔法引擎: Class/Method 反射调用链、JDK Proxy (接口) vs CGLIB (子类) 双通道、Spring AOP 落地。

InvocationHandlerCGLIBsetAccessible

java.time 时间处理

告别 Date/SimpleDateFormat 线程坑: Instant/LDT/ZDT 三件套、UTC 存储 + 时区展示的黄金约定、yyyy vs YYYY。

InstantZoneIdyyyy vs YYYY

虚拟线程 (Loom)

线程 60 年来最大重写: mount/unmount 调度、阻塞不再烧内核线程、pinning 暗礁与 ThreadLocal 陷阱。

carrierpinningStructuredTaskScope
TypeScript JavaScript 基础 × 类型体系 — 15 大特性 "单线程也能高并发, 类型是写出来的文档"

事件循环 Event Loop

单线程不卡死的真相: 调用栈跑完 → 清空全部微任务 → 取一个宏任务; 微任务永远插队, 阻塞栈等于阻塞世界。

微任务宏任务Node 六阶段

闭包与词法作用域

函数记住"定义时在哪"而非"调用时在哪": 作用域链写代码时定型, 闭包 = 函数 + 被它抓住的环境。

作用域链stale closure防抖/缓存

原型链与 this

class 只是原型继承的糖纸: 属性沿 __proto__ 向上找, this 由"怎么调用"当场决定 — new/call/隐式/默认四规则。

__proto__new 四步this 四规则

Promise 与 async/await

单向状态机 + 错误滑道: then 返回新 Promise, async 是 then 链的语法糖; all/race/allSettled/any 收票策略。

状态机AbortControllersingle-flight

V8 内存与垃圾回收

新生代"复制"快进快出, 老生代三色并发标记; 泄漏不是 GC 的错 — 监听器/定时器/闭包/Detached DOM 四源头。

Scavengeheap snapshotWeakMap

V8 引擎与 JIT

先解释后优化: 热点函数逐级上 TurboFan, 隐藏类与内联缓存决定属性访问速度 — 食言就 deopt 打回原形。

隐藏类内联缓存deopt

ES Modules 与工程化

import 在解析期定型: 静态结构换来实时绑定与 Tree-Shaking, 动态需求交给 import() 分包与 sideEffects 声明。

live bindingtree-shakingexports

类型转换与相等性

== 的每一步都写在规范里: ToPrimitive → 偏好拼接还是数字 → 逐分支可比; 八假值、NaN、0.1+0.2 全破译。

ToPrimitive八假值?? vs ||

泛型与类型编程

类型参数是"类型的函数": 调用时推断、约束里限权、条件类型递归 — 但只活在编译期, 运行时一片空白。

infer分布式条件类型擦除

类型收窄与判别联合

TS 沿 if/switch 逐块缩小类型: 判别字段一动联合只剩一个; 漏分支交给 never 举报, 收窄失效点要背。

判别联合never 穷尽unknown

映射类型与工具类型

[K in keyof T] 是类型层的 for 循环: 遍历键、改形状、as 重映射改名 — Partial/Pick/Omit 全是它的马甲。

映射类型as 重映射模板字面量

结构化类型与 any/unknown

看形状不看出身: 字段对得上就能赋值 — 甜在 mock 零仪式, 苦在同形异义互串, brand 补回名义性。

结构兼容多余属性检查brand

tsconfig 与构建链路

vite build 不查类型! 检查归 tsc --noEmit, 转译归 esbuild/swc; strict 全家桶、解析三方一致、CI 双门禁。

noEmitisolatedModulesreferences

声明文件与模块扩展

d.ts 是形状说明书: 消费方只看它不看实现; declare 描述"别处存在的东西", merge 给库类型加字段。

d.tsdeclare moduleaugmentation

异步类型与运行时校验闭环

类型管不了网线那头: as User 是自欺, schema.parse 才是闭环 — zod 单源、catch unknown、AbortSignal 贯穿。

zod 单源AwaitedResult 模式
性能分析 方法论与指标 · Linux CPU/内存/IO/网络 · 应用存储层 · 压测指标与工具 · 分布式韧性与容量 — 8 大图谱 "性能分析的本质, 是回答时间到底花在哪里"

性能分析总纲与核心指标

时间账单 = On-CPU + Off-CPU: 四大指标、RED/USE、Little's Law、Amdahl、排队论拐点与诊断漏斗 — 分析就是把每一毫秒记清楚。

Little's LawRED & USE排队论

CPU 与调度分析

us/sy/wa/st 分账定方向, run queue 才是饱和真话筒; 单核 100% 是 event loop/GIL 的指纹, 从 top 到 perf 一层层缩小。

mpstatrun queueperf/pprof

内存与 GC 分析

free 小不是病, available 下跌才是; 泄漏看曲线形状 (锯齿 vs 直线), OOM 先分宿主还是 cgroup, profile 抓分配方。

availableRSS 锯齿OOMKilled

磁盘 IO 分析

await/aqu-sz/%util 三仪表定饱和, NVMe 时代 util 会骗人; deleted 文件与 inode 耗尽两个暗坑, 四步收网抓凶手进程。

awaitaqu-szlsof +L1

网络性能分析

curl 分段定方向, TCP 状态定病种: TIME_WAIT 是常态, CLOSE_WAIT 是泄漏; 轻微丢包重传是 P99 的隐形杀手。

curl -wCLOSE_WAITretrans

应用与存储层性能

请求在每站排队: 锁/池/SQL/缓存/队列 — 连接满不可怕, 等待时间上涨才可怕; 穿透击穿雪崩三组药方与背压雪崩链。

池 waitN+1缓存三兄弟

分布式韧性与容量规划

retry 是放大器, deadline 是接力棒, 熔断是止损; 容量按"挂 N 台"规划、headroom 留 20~30%, 压测必须 open-loop。

retry budget熔断三态N-1 冗余

压测指标与工具图谱

平均数会撒谎, 分位数才是延迟语言 — Little 定并发, 曲棍球杆定容量; wrk/ab 输出逐行解剖, 压测机先死先查端口与 fd。

P99Little's Lawwrk/ab
DDIA 数据系统 全景 · 数据模型 · 存储引擎 · 编码 · 复制 · 分片 · 事务 · 共识 · 批流 · 集成哲学 — 10 大图谱 "一个全序日志, 万千派生视图 — 时间到底花在哪里"

全景与质量属性 (Ch.1-2)

SoR 与派生数据世界观: OLTP/OLAP/数仓、物化; 分位数与尾延迟放大 1−(1−p)^n; 背压/限流/熔断/退避四层过载防御。

SoR 派生p99背压

数据模型与查询语言 (Ch.3)

同一份数据三种形状: 关系表/JSON 文档/属性图; schema-on-write vs read; 事件溯源 + CQRS: 状态只是日志的投影。

文档 vs 关系局部性事件溯源

存储引擎与索引 (Ch.4)

LSM 追加写优 vs B-Tree 原地读优, 放大三兄弟; Bloom/tombstone/compaction; 行存/列存/倒排/向量四套索引各有各的题。

LSMB-TreeHNSW

编码与服务数据流 (Ch.5)

JSON 81B → Protobuf 33B → Avro 32B; 向后/向前兼容与 schema registry; RPC 超时后结果未知 → 幂等; broker 削峰解耦。

field tag兼容性幂等

复制 (Ch.6)

单主/多主/无主; 异步切主丢写 → 半同步; lag 三症状各有便宜解; quorum w+r>n 相交; LWW 静默丢数据 vs CRDT 合并。

quorum复制延迟CRDT

分片与路由 (Ch.7)

mod-N 扩容迁 75% vs 一致性哈希 1/N; 热点 key 拆分+缓存; 本地索引 scatter/gather 尾部放大 vs 全局索引写放大。

一致性哈希hot keyscatter/gather

事务与隔离 (Ch.8)

隔离级别阶梯: RC→SI→serializable 各防什么; MVCC 快照防 read skew 防不了 write skew (医生值班); 2PC 是阻塞协议。

MVCCwrite skew2PC

分布式故障与共识 (Ch.9-10)

论证链: 六情形不可区分 → timeout+多数派 → GC 暂停 → fencing token → 共识 (epoch 选举+全序日志); CAP/PACELC 正确读法。

fencingRaftPACELC

批处理与流处理 (Ch.11-12)

shuffle 是分布式排序; 事件时间开窗 + watermark 触发; dual-write 交错分叉 → outbox+CDC 单一事实流; offset 回拨即重放。

shufflewatermarkCDC

数据集成与哲学 (Ch.13-14)

一切皆派生: 日志+投影; kappa 只留流重算=重放; 端到端 request ID; timeliness 可让 integrity 不让; saga 补偿与对账。

kappasaga对账
Agent 应用开发 基础循环 · 工具调用 · MCP · 上下文工程 · 记忆 · RAG · 多智能体 · 安全护栏 · 评估可观测 · 生产化 — 10 大图谱 "Agent = LLM + while 循环 + 终止守卫 — 模型出意图, 代码管一切"

基础循环 (Agent Loop)

Agent 的本质是会调工具的 while 循环: messages 唯一状态、stop_reason 分流、三道终止守卫(步数/预算/重复检测); token 复利与断点续跑。

ReAct终止守卫token 复利

工具调用 (Tool Use)

模型按 Schema 填表、代码验表执行: description/enum/required 契约、pydantic 校验闸门、错误观察回喂自愈、call.id 配对与写操作幂等。

JSON Schema校验闸门幂等键

MCP 协议

AI 应用的 USB-C: 三原语按控制权划分(tools/resources/prompts)、stdio 与 Streamable HTTP 双传输、initialize 握手、OAuth 2.1 与 stdout 纪律。

JSON-RPCstdioOAuth 2.1

上下文工程 (Context)

窗口即现实: 46k 账单大头是历史堆积; 压缩/截断/子代理隔离三件武器; KV cache 前缀逐字节稳定 — 消息只追加, system 一字不改。

compactionlost-in-middleKV cache

记忆系统 (Memory)

模型无状态, 跨会话靠外置: 写(提炼去重合并)/读(检索注入)/忘(TTL)三件事; 语义/情景/程序三类记忆; namespace 串号比没有记忆更危险。

semantic提炼namespace

RAG 检索增强

两条管道一条纪律: 入库(分块/嵌入)与查询(改写/混合检索/重排); RRF 融合免调参、父子块精度兼得; 权限过滤必须在 SQL 层, 引用强制。

hybrid RRFrerank引用溯源

多智能体编排

第一性收益是上下文隔离: supervisor 分派、subagent 独立大脑、只回传 schema 化摘要; handoff 移交载荷、黑板原子认领、逐 agent 记账。

supervisorhandoff上下文隔离

安全与护栏 (Guardrails)

不可信三角: 输入/工具返回/输出都按敌情处理; 间接注入是最主流攻击面; 数据指令分界+最小权限+沙箱纵深防御; 护栏是代码不是提示词。

间接注入HITL沙箱

评估与可观测 (Evals)

Eval 防变坏、Trace 找瓶颈: 数据集→runner→judge→门禁四步成环; judge 与人工校准 ≥0.85 才上岗; badcase 回流让同类翻车不复发。

LLM-as-judge回归门禁OTel GenAI

生产化 (Production)

五道坎: SSE 流式、步骤级 checkpoint、幂等双保险、预算熔断与降级链、成本三维归因; prompt 灰度 + Little's Law 定容量, 回滚永远比修复快。

durable预算熔断灰度回滚
系统架构 八大核心问题总览 + 16 大机制族 — 17 大图谱 "一切分布式中间件 = 同 20 个基础机制的排列组合"

通用机制知识图谱 (总览)

一张图看穿分布式骨架: 心跳→选举→租约 · 分片→复制→Quorum · 重试→幂等 · 限流→熔断; Kafka/K8s/etcd/Redis/ZK/MySQL 的机制配方与事故链/破局链, 配 10 场景 20 坑。

八大问题机制配方事故链

节点协调与集群控制

一群机器怎么不打架: 心跳超时触发竞选, 多数派承认才算主, 租约到期自动让位, fencing token 防脑裂; etcd/client-go/Redis 锁落地, 10 场景 20 坑。

选主租约fencing

故障检测与可用性

没收到心跳 ≠ 死了: GC 停顿伪装死亡, phi 累积怀疑度才敢判死; K8s 三探针分工、Sentinel 判死参数与双主事故链, 10 场景 20 坑。

心跳phi探针

数据分布与扩缩容

数据放哪、怎么搬: 一致性哈希扩容只迁 1/N, mod-N 迁走大半; Redis slot/Kafka 分区, 分片键选型、热点拆 key 与重平衡限速, 10 场景 20 坑。

一致性哈希slot热点

数据复制与持久化

一台挂了数据不升天: 同步/异步/半同步的 ACK 时机, 异步切主丢已确认写; MySQL GTID/Redis/Kafka ISR、WAL 与快照恢复, 10 场景 20 坑。

半同步WALGTID

一致性与共识

副本之间信谁: 线性到最终一致谱系, Quorum 读写交集, Raft 选举+日志复制全链; CAP/PACELC 正确读法与 LWW/CRDT 合并, 10 场景 20 坑。

RaftquorumCAP

流量治理与负载控制

请求太多怎么办: LB 五策略选型, 令牌桶/滑动窗口, nginx limit_req 与 Redis+Lua 集群限流; 背压让上游慢下来, 来不及就弃车保帅, 10 场景 20 坑。

令牌桶limit_req背压

容错弹性与稳定性

挂了怎么继续跑: 超时沿链递减、退避重试、熔断三态、舱壁降级五件套; gobreaker/Resilience4j 落地与级联故障事故链, 10 场景 20 坑。

熔断退避舱壁

事务消息与最终一致性

跨服务一致性拼图: 双写分叉的解药 Outbox, RocketMQ 事务消息与 Kafka EOS, TCC/Saga 补偿链, 幂等消费与 DLQ 闭环, 10 场景 20 坑。

OutboxSaga幂等

隔离多租户与资源治理

多客户共用一套系统: 独立 DB/Schema/行级三模式成本阶梯, 行级 tenant_id 全链路防串号, K8s 配额与分池治理 Noisy Neighbor, 10 场景 20 坑。

tenant_id配额分池

服务发现与配置中心

A 怎么找到 B: 注册是带 TTL 的租约, 发现靠本地缓存兜底; Consul/Nacos/K8s SVC 三模式, 优雅上下线与配置热更回滚, 10 场景 20 坑。

注册中心Watch热更

缓存机制

用一致性换十倍读: Cache Aside 标准读写路径, 穿透/击穿/雪崩三兄弟药方 (Bloom/singleflight/TTL 抖动), 多级缓存与热 key 治理, 10 场景 20 坑。

Cache AsidesingleflightBloom

时间顺序与因果

没有统一的"现在": 物理钟回拨导致雪花 ID 重复, Lamport/Vector/HLC 只记因果; 计时用单调钟, 排序展示才用墙钟, 10 场景 20 坑。

LamportHLC单调钟

调度编排与控制面

让实际状态无限逼近期望: Reconciliation 调谐环, 调度两阶段与 bin packing, HPA 稳定窗口防震荡, Operator/CronJob/亲和性打散, 10 场景 20 坑。

ReconcileHPA亲和性

可观测性

回答系统现在怎么样: 指标发现症状、追踪定位、日志取证; OTel 全链路接入, Prometheus 告警规则, SLO 错误预算与 RED/USE, 10 场景 20 坑。

OTelPrometheusSLO

安全与访问控制

认证回答你是谁, 授权回答能干啥: TLS→认证→授权→审计五站流水线, RBAC/ABAC、mTLS 互信、Vault 动态密钥, 硬编码 AK/SK 事故链, 10 场景 20 坑。

RBACmTLSVault

常见架构模式

积木的组合方式: 每种模式都在用复杂度换质量属性; 微服务拆分边界, CQRS+事件溯源单一事实源, Saga 编排 vs 协同, Gateway/BFF/Sidecar, 10 场景 20 坑。

CQRS事件溯源Saga