CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
服务网格与 SOA/课时/流量管理
RawBlame
课时目录12 节

服务网格与 SOA

  1. 01服务网格是什么
  2. 02SOA 与微服务
  3. 03Sidecar 模式
  4. 04流量管理
  5. 05mTLS 与服务身份
  6. 06Istio 入门
  7. 07与 Kubernetes
  8. 08优雅降级
  9. 09弹性与熔断
  10. 10网格与 API 网关
  11. 11运维与可观测性
  12. 12综合练习

流量管理

金丝雀、蓝绿、重试、超时。

35 分钟

流量管理

服务网格的核心价值之一:在不改业务代码的前提下 做路由、分流、重试与超时。金丝雀发布、蓝绿切换、故障注入都变成 声明式配置,由 Sidecar 执行。

学习目标

  • 理解金丝雀、蓝绿、镜像流量的区别
  • 配置重试、超时、故障注入的基本思路
  • 对照 rel-retries 与 rel-timeout

发布策略

策略做法适用
蓝绿新旧两版 Service,一切流量切到新版本快速回滚、版本差异大
金丝雀少量流量到新版本,观察指标再放大降低发布风险
镜像(Shadow)复制一份流量到新版本,响应仍走旧版压测新版本、不影响用户

Spring Cloud 里常靠 Gateway 路由或注册权重;网格里典型用 VirtualService + DestinationRule 按 subset 权重分流(下节 mesh-istio 详述)。

# 示意:90% v1,10% v2
spec:
  http:
    - route:
        - destination:
            host: course-service
            subset: v1
          weight: 90
        - destination:
            host: course-service
            subset: v2
          weight: 10

重试与超时

Sidecar 可在 出站 统一重试,避免每个 Feign 客户端各写一套:

  • timeout:单次请求上限,防止线程挂死(对照 rel-timeout)
  • retries:仅对 idempotent 或明确允许的方法;需 有限次数 + 退避,否则引发 rel-cascade 中的 retry storm

网格层重试 看不见业务语义:POST 下单是否可重试,仍要应用层幂等(订单号、去重表)保证。

故障注入

混沌工程常用 延迟 / 中断 注入,验证 reliability-essentials 里学的降级与 SLO:

# 示意:对 course-service 注入 5s 固定延迟
fault:
  delay:
    fixedDelay: 5s
    percentage:
      value: 10

先在预发、小比例生产验证;配合 obs-traces 观察链路变化。

与 Spring Cloud Gateway 的分工

  • Gateway / Nginx:北向、鉴权、聚合 API、WAF
  • 网格 VirtualService:集群内服务间、多版本、细粒度 Header 路由
  • 两者可串联:Internet → Nginx → Ingress Gateway → mesh → 微服务。

    练习

    • 设计 course-service v1→v2 金丝雀:10% → 50% → 100% 各需观察哪些指标
    • 列出「适合网格重试」与「必须应用幂等」各两个 API 例子
    • 对照 sc-gateway 路由配置,写一句 Gateway vs 网格各管哪段

    小结

    流量管理 = 发布、路由、韧性策略下沉到 Sidecar。 下一课在网格层解决 mTLS 与服务身份。

    加载本节练习…
    ← 上一课Sidecar 模式下一课 →mTLS 与服务身份