选型

Istio

你可能会说

微服务之间要 mTLS、限流、灰度,每个服务都改代码?

Kubernetes 上的服务网格Sidecar 拦截流量,统一做 mTLS、重试、熔断、灰度、遥测,业务代码无感;复杂度和资源开销是代价。
也常被叫作服务网格Service Mesh
先问一句多语言微服务要统一治理?
默认Istio→擅长mTLS + 灰度→别用服务很少的小系统
成熟度试验

什么时候选它

  • 多语言微服务的统一治理
  • 需要零信任 mTLS 与细粒度授权
  • 灰度、金丝雀、流量镜像

什么时候别选

  • 服务数量少(SDK 或网关就够)
  • 团队没有 K8s 与服务网格运维能力
  • 延迟预算极紧(sidecar 有额外开销)
容易混在一起 · 怎么分
Istio≠Spring Cloud

Istio 语言无关、业务无侵入;Spring Cloud 是应用内方案,Java 生态完整但每个服务都要引入依赖。

Q面试会问什么

  • 问:Sidecar 怎么拦流量?
    答:注入 iptables 规则,把进出 Pod 的流量重定向到同 Pod 的 Envoy。
  • 问:和 Spring Cloud 的区别?
    答:Istio 在基础设施层、多语言通用;Spring Cloud 在应用内,Java 专属。
延伸阅读 · 权威出处