Skip to content

后端技术

收录后端领域的技术笔记,覆盖服务端框架、数据库、缓存、消息队列与架构设计,随学习持续补充。

已收录

  • 数据库 — 索引原理与执行计划、事务与 MVCC、SQL 优化、分库分表
  • 缓存 — Redis 数据结构、淘汰策略、三大问题解法、分布式锁与高可用
  • 消息队列 — Kafka / RabbitMQ 架构、投递语义与幂等、削峰与死信
  • 鉴权认证 — Session-Cookie、JWT、OAuth 2.0 / OIDC 与落地要点
  • 微服务 — 服务拆分、注册发现、网关、熔断限流、可观测性
  • 容器与部署 — 镜像构建、Kubernetes 核心对象、优雅退出与发布策略
  • 系统设计 — 容量估算、一致性取舍、高并发与高可用架构
  • Node.js / NestJS — 事件循环与 libuv 线程池、Buffer 与流、Express/Fastify、cluster、NestJS 模块化
  • Spring Boot — IoC 与依赖注入、REST API、JPA/MyBatis 数据访问、Spring Security
  • Spring Cloud — Eureka 注册发现、OpenFeign 声明式调用、Gateway 网关路由、服务治理全家桶
  • Go — net/http 高并发服务、context 取消、错误处理、pprof 剖析、Gin 与优雅退出

规划清单

主题说明状态
数据库索引原理、事务与隔离级别、SQL 优化、分库分表✅ 已收录(databases.md:B+ 树为何是默认(对比哈希/B 树/LSM)、索引提速实测(10 万行 210x)、复合索引最左前缀四种情况、覆盖索引与回表、索引失效写法实测表(SQLite 的 LIKE '前缀%' 默认不走索引及修复)、深分页 OFFSET vs 游标实测 58x、N+1 实测 74.7x、ACID/MVCC/ReadView、四隔离级别三类读问题、慢 SQL 排查四步、分库分表与不停机迁移五步、11 条检查清单与 13 条坑速查;基于 SQLite 3.32.2 + 10 万行实测)
缓存Redis 数据结构、缓存策略(穿透/击穿/雪崩)、集群✅ 已收录(cache.md:六层缓存金字塔、Redis 九种数据结构场景对照、Cache Aside/Write Through/Write Back、淘汰算法命中率实测(容量 100 时 LFU 72.8% > LRU 65.4% > FIFO 60.3%,扩容比换算法更有效)、穿透/击穿/雪崩解法实测(布隆过滤器 1000 万条 11.9MB + 0.30% 误判、单飞 100 并发回源降为 1、TTL 抖动同秒过期 10000→50)、分布式锁 SET NX PX + Lua 与误删时间线实测、主从/哨兵/Cluster 与 RDB/AOF、11 条检查清单与 13 条坑速查;Node v22.22.1 实测,Redis 命令本机未实机验证)
消息队列Kafka / RabbitMQ 架构、投递语义与幂等、削峰与死信✅ 已收录(message-queue.md:该不该用 MQ 判断表、Kafka vs RabbitMQ 七维差异、分区/消费组/offset/ISR、四种交换机与 prefetch、可靠性与三种投递语义、幂等实测(100 条含 30 条重投:无幂等扣 1300 元 vs 幂等扣 1000 元)、分区顺序性实测、重试与死信实测(毒丸消息不阻塞其余)、削峰实测(突发 1000 请求下游 50/s:无队列成功 108 失败 892,有队列 1000 全成功)、12 条检查清单与 13 条坑速查;Node v22.22.1 实测,Broker 未实机验证)
鉴权认证Session-Cookie、JWT、OAuth 2.0 / OIDC✅ 已收录(auth.md:认证/授权/凭证/身份边界、Session-Cookie 与 Cookie 三属性、JWT 三段结构与验签实测(172 字符;篡改 payload 验签 false)、授权码 + PKCE 六步时序、ID Token vs Access Token 四维对照、密码哈希算法对照与 scrypt 成本实测(N=16384→59.5ms)、刷新令牌轮换 + 重用检测、RBAC/ABAC/ReBAC 与越权 IDOR 红线、10 条设计检查清单与 10 条坑速查)
微服务服务拆分、注册发现、网关、熔断限流、可观测性✅ 已收录(microservices.md:单体优先判断与三项真实代价、业务能力拆分 vs 三种反模式、注册发现两模式四组件对照、三类健康检查、网关/BFF、同步调用三铁律、熔断状态机实测(3 次失败 CLOSED→OPEN→HALF_OPEN→CLOSED)、限流四算法虚拟时钟实测(固定窗口边界放行 2 倍 vs 滑动窗口/令牌桶)、舱壁与降级、可观测三支柱、契约与配置治理、10 条检查清单与 11 条坑速查;Node v22.22.1 实测)
容器与部署Docker、Kubernetes、优雅退出与发布策略✅ 已收录(deployment.md:容器 vs 虚拟机五维对照、namespace/cgroup/UnionFS、Dockerfile 多阶段构建 8 条实践、Compose 健康依赖、K8s 九类核心对象与可上生产 Deployment+HPA 清单、优雅退出 Node 实测(默认 SIGTERM 13ms 中断请求 vs 优雅退出 +714ms 排空后才 exit 0,含 keep-alive 空闲连接拖满宽限期实测坑)、terminationGracePeriod 与 preStop、五种发布策略、配置与密钥五原则、11 条检查清单与 12 条坑速查)
系统设计容量估算、一致性取舍、高并发与高可用✅ 已收录(system-design.md:五步方法论与估算速查表、一致性哈希虚拟节点实测(200 虚拟节点标准差 8143→592、增删节点迁移率 14.92%)、短链容量估算实战(18.25 亿条→945GB 需分库分表)、缓存三大问题与更新策略、CAP/PACELC 与六种分布式事务方案、雪花 ID 实测(同毫秒单调递增,附时钟回拨/2^53 三坑)、高并发三板斧与秒杀五层拦截(Redis Lua 防超卖)、高可用算术、10 条检查清单与 12 条坑速查;Node v22.22.1 实测)
Node.js / NestJS事件循环、Express/Fastify、流与集群、NestJS 模块化✅ 已收录(nodejs.md:事件循环阶段与微任务优先级实测(nextTick > Promise;I/O 回调内 setImmediate 稳定先于 setTimeout(0))、libuv 线程池实测(默认 4、超容量分批排队:N=16 池4 943ms vs 池12 719ms)、Buffer/TypedArray 共享内存与拷贝、流与背压实测(80MB 文件整读 RSS +80.7MB vs 流式峰值 58.7MB)、Express 5.2.1 vs Fastify 5.12.1 压测(QPS 3906 vs 9136,约 2.3x)、cluster 崩溃自动拉起、NestJS 依赖注入最小工程实测(Mapped {/hello, GET});基于 Node v22.22.1,各节附坑点)
Spring BootIoC/DI、REST API、JPA/MyBatis、Spring Security✅ 已收录(spring-boot.md:IoC 容器与构造器注入(去注解启动即失败暴露缺失依赖)、Bean 单例与循环依赖、MVC 注解速查与 @RestControllerAdviceJPA 与 MyBatis 同表双写实测(双访问层计数一致)、选型对比表、Spring Security 过滤链实测(BCrypt 带盐哈希、白名单 200/未认证 401/正确凭据 200/错密码 401、POST 新建成功)、无状态 API 关 CSRF 与 JWT 路线、最小工程构建运行;基于 Java 17 + Spring Boot 3.3.5 + H2 实测,各节附坑点)
Spring Cloud服务注册发现、OpenFeign 声明式调用、Gateway、配置中心与治理全家桶✅ 已收录(spring-cloud.md:Release Train BOM 对齐(2023.0.3 ↔ Boot 3.3.5)、Eureka 注册 XML 元数据实测与租约语义、Feign + LoadBalancer 双实例轮询实测(6 次调用 8101↔8102 严格交替)、Gateway lb:// 路由实测(经网关两次调用落不同实例)、启动期注册失败自动重试实测、剔除的两段时延(服务端租约 vs 客户端 30s 缓存)语义拆解、家族成员速查(Config/Tracing/CircuitBreaker/Stream);基于 OpenJDK 17 + Boot 3.3.5 + Spring Cloud 2023.0.3 四模块多进程实测)
Go高并发 HTTP 服务、context、pprof 剖析、Gin✅ 已收录(go.md:net/http 每连接一个 goroutine 实测(300 并发慢请求 peak=300)、Go 1.22+ ServeMux 路由、中间件洋葱模型、context 取消传播实测(curl 1s 断连 → 服务端 context canceled 提前释放 8s 任务)、错误处理最佳实践(哨兵错误 + %w/errors.Is)、pprof 剖析实测(CPU 4s 采样 359.65% 定位热点、heap alloc_space 定位分配点)、调优检查表、Gin v1.12.0 实测与标准库选型、SIGTERM 优雅退出;基于 go1.26.5 实测;与语言模块 Go 页分工互链)
Rust服务端开发视角:Axum/Actix-web 框架、tokio 异步与并发、sqlx 数据访问、工程与部署待规划(占位页 rust.md 已建,语言层见语言模块 Rust 页
C++服务端开发视角:CMake 工程化、Boost.Asio/Drogon 网络服务、并发与协程、内存管理与性能剖析待规划(占位页 cpp.md 已建)
Python服务端开发视角:FastAPI / Django Web 框架、asyncio 异步与并发、SQLAlchemy 数据访问与迁移、uv 工程与部署、pytest 与性能剖析待规划(占位页 python.md 已建,语言层见语言模块 Python 页

写作规范

  • 每篇聚焦一个技术点,包含「核心概念 → 代码示例 → 配置与部署 → 常见坑」;
  • 涉及数据库的示例注明版本与执行环境;
  • 文件名用短横线命名(如 redis-cache-strategy.md),新增后登记到 config.mjs 侧边栏。

基于 VitePress 构建 · 内容以知识共享方式沉淀