D
AI
学习工作台
8 周后端冲刺2026-05-221 分钟阅读

DNS 与负载均衡

解析流程、递归与迭代、L4/L7 与一致性哈希

8周冲刺week4DNS负载均衡记笔记标记疑惑

DNS 解析流程

浏览器输入域名 → OS 缓存 → 本地 DNS(LDNS)→ 根 → TLD → 权威 DNS → 返回 A/AAAA 记录。

记录类型:A(IPv4)、AAAA(IPv6)、CNAME(别名)、MX(邮件)、TXT(验证)。

TTL:缓存时间;过短增加负载,过长切换慢。

智能 DNS 与 GSLB

按地理位置返回最近 IP,配合 CDN。故障时切换解析到备用机房。

负载均衡层次

DNS 负载:多 A 记录轮询,粗粒度,缓存导致不均衡。

硬件/软件 LB:Nginx、HAProxy、云 SLB、Envoy。

L4(传输层)

TCP 连接转发,NAT 或 DR 模式。无应用语义,适合任意协议。

L7(应用层)

按 Host、Path、Header 路由;终止 TLS;WAF;gRPC/HTTP2 路由。

均衡算法

  • 轮询 / 加权轮询
  • 最少连接
  • IP Hash(会话粘滞)
  • 一致性哈希(分布式缓存,见 Week 6)
Client
            │
       [ L7 LB ]
       /    |    \
   Svc-A  Svc-B  Svc-C

健康检查

主动探测 /health;失败摘除;慢启动 防止冷实例被打满。

与系统设计

week07-system-design-framework 中估算 QPS 后选 LB 层数。微服务 服务发现(Consul/K8s Service)替代静态 DNS。

常见问题

DNS 污染 / 劫持:DoH/DoT。短连接风暴:连接池 + Keep-Alive。跨域:CORS 在应用层非 DNS。

实战巩固与面试表达

本篇属于 8 周冲刺 week04-dns-load-balance 主题。复习时先闭卷回答 frontmatter 中三张 flashcard,再展开口述两个「为什么」:为什么这种方案能 work、边界失败时如何降级。与相邻章节对照:算法篇强调复杂度与模板,Go 篇强调工程默认写法,中间件篇强调线上故障案例。

动手与自检清单

用 25 分钟限时做 1 道相关练习题或画出一张架构/数据结构示意图;用 5 分钟写 STAR 片段说明你在项目里是否用过类似技术。记录 3 个面试追问及你的标准答法,存入 /zh/notebook/master-plan 笔记。若某点不熟,回到对应 /chapters 交互 Lab 重新走一遍流程,比死记卡片更有效。

易错点提醒

避免只背名词不会画图;避免只说优点不谈 trade-off(性能、一致性、运维成本至少提一项);避免把学习 Demo 说成百万 QPS 生产。回答时使用「场景 → 方案 → 结果 → 反思」四段式,体现工程成熟度。

自检

口述从 URL 到 TCP 连接建立全链路(DNS → LB → 后端)。对比 Nginx upstream 与 K8s Ingress。下一篇 OS:week04-os-process-thread

知识卡片

问题

DNS 递归与迭代查询区别?

点击翻转查看答案

答案

递归:客户端问本地 DNS,由本地 DNS 代问到底;迭代:服务器返回下一跳 NS 引用,查询者自己继续问。

问题

L4 与 L7 负载均衡差异?

点击翻转查看答案

答案

L4 基于 IP/端口转发,快但不知 HTTP 路径;L7 解析 HTTP 头/路径,可路由、限流、灰度,开销更大。

问题

一致性哈希解决什么问题?

点击翻转查看答案

答案

节点增减时只迁移相邻环上部分 key,避免全体 remapping;虚拟节点平衡负载。