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综合练习

服务网格是什么

数据面/控制面;service-mesh 节点。

30 分钟

服务网格是什么

微服务拆开后,服务间调用量暴涨:发现、路由、重试、鉴权、可观测 若全写进业务代码,每个团队重复造轮子。Spring Cloud 用 Java 库解决一部分;服务网格(Service Mesh) 把这类能力下沉到 独立基础设施层,业务进程几乎无感知。

学习目标

  • 区分 数据面 与 控制面
  • 说清 Sidecar 代理在调用链中的位置
  • 对照路线图 service-mesh 节点,理解本 track 在微服务路径中的位置

问题从哪来

假设 user-service 调 course-service:

需求传统做法痛点
超时 / 重试Feign + Resilience4j每个服务重复配置
mTLS应用内嵌证书逻辑语言栈不一致难统一
金丝雀改负载均衡或网关规则规则散落多处
链路追踪各服务引 SDK版本升级牵一发动全身

网格的思路:把「服务间通信」抽成平台能力,而不是每个 jar 各自实现。

数据面 vs 控制面

控制面(Control Plane)     数据面(Data Plane)
Istiod / Linkerd 控制组件  →  每个 Pod 里的 Sidecar 代理
下发策略、证书、路由规则        拦截进出流量并执行策略
  • 数据面:真正转发流量的代理(常见 Envoy),与应用容器同 Pod 部署
  • 控制面:集群级「大脑」,把 VirtualService、证书、服务发现结果 推送给 各 Sidecar

业务代码仍发 HTTP/gRPC 到「本机 localhost:15001」之类地址,Sidecar 透明转发到真实目标。

与 Spring Cloud 的分工

层次Spring CloudService Mesh
注册发现Eureka / NacosK8s Service + 网格服务发现
客户端负载均衡Ribbon / LoadBalancerSidecar 出站负载均衡
熔断Resilience4jDestinationRule + outlier detection
网关Spring Cloud GatewayIngress / Gateway API + 网格入口

两者 可并存也可迁移:新项目可在 K8s 上逐步把横切逻辑从应用挪到网格。详见 mesh-soa。

常见实现

  • Istio — 功能全、生态大,本 track 以它为主示例
  • Linkerd — 轻量、Rust 数据面
  • — 与 HashiCorp 栈集成
Consul Connect

选型取决于团队运维能力、是否已在 Kubernetes 上标准化部署。

练习

  • 画一张图:Pod 内 app + envoy 两个容器,标注南北向与东西向流量
  • 阅读 sc-intro,列出 3 项 Spring Cloud 能力可由网格接管
  • 在 devops 路线图找到 Service Mesh 节点

小结

服务网格 = 专用基础设施层,用 Sidecar 统一管服务间流量。 下一课从 SOA 历史看微服务与网格为何出现。

加载本节练习…
下一课 →SOA 与微服务