Skip to content
On this page

透明多级分流接入层架构

← 返回专题记录

text
[用户请求]


[客户端缓存] ←─ 强制/协商缓存(浏览器)


[DNS 解析]

   ├─ 静态资源 → CNAME → [CDN 边缘节点]
   │                         ↑
   │                         │ ←【传输链路优化生效】
   │                         │    • HTTP/2 / HTTP/3 (QUIC)
   │                         │    • TLS 1.3 + 0-RTT
   │                         │    • Brotli/gzip 压缩
   │                         │    • TCP BBR / TFO
   │                         │
   │                         └──(命中返回;未命中 → 回源)

   └─ 动态请求 → A 记录 → [L4 负载均衡器](透传 TCP,不终止连接)


                      [API 网关](南北向流量治理 + L7 路由)

                              │ ←【传输链路优化生效】
                              │    • 客户端 ↔ 网关之间:
                              │      - HTTP/2 多路复用
                              │      - TLS 1.3 快速握手
                              │      - gzip/Brotli 压缩



                      [后端微服务集群]

1. 客户端缓存

  • 强制缓存:通过 Cache-Control: max-ageExpires,浏览器直接使用本地副本,不发请求。
  • 协商缓存:通过 ETag / Last-Modified + If-None-Match,服务器返回 304 Not Modified 表示可复用。

2. 动静分离与 CDN 加速

  • 静态资源走 CDN
    • DNS 是域名解析系统;
    • CNAME 是 DNS 中的一种“别名记录”,用于将流量引导至 CDN 厂商(如 www.example.com CNAME → example.cdnprovider.com);
    • CDN 节点缓存静态资源(JS/CSS/图片),就近分发。
  • CDN 回源策略
    • 被动回源:边缘节点未命中缓存时,自动回源站拉取(默认行为);
    • 主动预热:提前将资源推送到 CDN 节点(适用于大促、新版本发布)。
  • DCDN(全站加速)
    • 同时加速静态 + 动态内容;
    • 动态请求通过 CDN 骨干网优化回源路径,降低延迟。

3. 传输链路优化

  • 连接数优化

    • HTTP Keep-Alive:复用 TCP 连接,避免频繁三次握手开销,串行传输;
    • HTTP/2 多路复用:单个 TCP 连接上并行传输多个请求/响应,彻底解决 HTTP/1.1 队头阻塞问题。
  • 传输压缩与带宽节省

    • 启用 gzip / Brotli 即时压缩,对 HTML、CSS、JS、JSON 等文本资源动态压缩,减少 60%~80% 传输体积;
    • CDN 或网关根据客户端 Accept-Encoding 头自动选择最优压缩算法;
    • 对已压缩格式(如 JPG、PNG、MP4)跳过重复压缩,避免 CPU 浪费。
  • 快速建连与弱网加速

    • HTTP/3(基于 QUIC):在 UDP 上实现可靠传输,支持 0-RTT 快速建连,显著改善移动网络、高丢包环境下的首屏加载速度;
    • 结合 TCP Fast Open(TFO)BBR 拥塞控制算法,进一步降低延迟、提升吞吐。

4. API 网关(南北向流量治理)

  • 限流:基于 QPS/并发数控制入口流量;
  • 熔断 & 降级:当后端服务异常时,快速失败或返回兜底数据;
  • 安全控制
    • 黑白名单(IP/API 级);
    • 认证鉴权(JWT/OAuth2);
    • WAF 防护(防 SQL 注入、XSS 等)。

5. 负载均衡(Load Balancing)

5.1 四层负载均衡(L4,基于 IP + Port)

  • 常用组件:LVS、HAProxy(L4 模式)、云厂商 NLB。
  • 高可用保障:Keepalived + VRRP 协议,通过 VIP 漂移 + Gratuitous ARP 实现主备切换。

DR 模式(Direct Routing)

  • 原理:LVS 修改目标 MAC 地址,转发给真实服务器(RS);二层工作
  • 特点
    • 三角传输(请求经 LVS,响应直连客户端);
    • 性能最高,无 NAT 开销;
    • 要求 LVS 与 RS 在同一 VLAN(二层可达);
    • RS 需绑定 VIP 并抑制 ARP。
  • 适用场景:同机房高性能集群;常配合 DNS 调度实现“自建多活”。

TUN 模式(IP Tunneling)

  • 原理:LVS 将原始 IP 包封装进新 IP 包(IP-in-IP),通过隧道发给跨网段 RS;三层工作
  • 特点
    • 支持跨机房、跨云部署;
    • RS 需支持 IP 隧道协议(如 ipip 模块)并绑定 VIP;
    • 单物理机运行多服务时配置冲突,运维复杂。

NAT 模式(Network Address Translation)

  • 原理:LVS 修改目标 IP 为 RS 的真实 IP,RS 回包必须经 LVS(网关模式);三层工作
  • 特点
    • 配置简单,RS 无需特殊设置;
    • LVS 成为流量瓶颈(请求+响应都经过);
    • 适合小规模或测试环境。

5.2 七层负载均衡(L7,基于 HTTP 内容)

  • 常用组件:Nginx、HAProxy(HTTP 模式)、Envoy、云厂商 ALB。
  • 原理
    • 终止 TCP 连接,解析 HTTP 头部(Host、Path、Cookie 等);
    • 根据规则路由到不同后端服务(如 /api/v1 → service-A);
    • 支持重写、重定向、Header 注入等高级功能。
  • 特点
    • 灵活性高,但性能低于 L4(需解析应用层数据);
    • 可与 L4 配合:L4 做一级均衡,L7 做细粒度路由。

弹性自愈型微服务应用层架构

  • 服务端缓存
    • 缓存属性
      • 吞吐量
        • Caffeine环形缓存,WAL机制把数据日志异步化,大大提升性能
      • 命中率
        • 淘汰算法:LRU,LFU,TinyLFU,W-TinyLFU
      • 拓展功能
        • 并发级别控制,失效策略,容量控制,事件通知,统计信息
      • 分布式支持
        • 复制式缓存
        • 集中式缓存
    • 缓存风险
      • 缓存击穿:某key失效,大量流量打入数据库
        • 加锁同步
        • 热点数据定制化管理,发者通过代码来有计划地完成更新、失效,避免由缓存的策略自动管理。
      • 缓存穿透:查询系统不存在的数据
        • 业务允许的穿透,对null也做缓存,在过期时间内,只允许一次穿透,穿透也要加锁
        • 恶意穿透,采用布隆过滤器
      • 缓存雪崩:大批缓存一起过期,或者一批数据同时穿透带来的数据库压力
        • 多级缓存
        • 随机过期时间
        • 主从多节点
      • 缓存污染
        • Cache Aside:延时双删,先更新数据库再删除缓存,删除失败发送mq保证一致性
        • Read/Write Through:缓存作为“唯一入口”,数据库对应用透明。写要求比较高,数据库完成了才返回成功
        • Write Behind Caching:写操作只更新缓存,由缓存异步批量写入数据库。
  • 微服务拆分与治理
    • 核心业务拆分成独立微服务,降低耦合;
    • 服务注册发现(Nacos/Consul)、配置中心;
    • 东西向流量治理:熔断(Hystrix/Sentinel)、降级、限流。
  • 无状态设计
    • 会话外置(Redis 存 Session);
    • 支持快速水平扩缩容(K8s HPA/KEDA)。
  • 异步化与削峰
    • MQ(Kafka/RocketMQ)解耦核心链路;
    • 最终一致性保障(事务消息、本地消息表)。
  • 可观测性体系
    • Metrics + Tracing + Logging 三位一体;
    • 健康检查 + 自动重启(K8s Probes)。
  • 弹性伸缩策略
    • 基于指标的 HPA;
    • 事件驱动的 KEDA;
    • (可选)预测性扩容。
  • 容灾与自愈能力
    • 多 AZ/Region 部署;
    • 混沌工程常态化演练。
  • 安全基线
    • mTLS 加密、数据脱敏、操作审计。

持久层架构

  • 拆分存储 分库分表,分区,nosql,newsql,冷热分离
  • 读写分离,消化流量 newsql,读写分离