服务网格(Service Mesh) 是一种用于管理微服务架构中服务间通信的基础设施层,旨在解决微服务环境下的通信复杂性、可靠性和可观测性问题。它通过在应用程序的微服务之间插入一个 轻量级网络代理层(如 Envoy、Linkerd),将服务间的通信逻辑(如负载均衡、熔断、认证、监控等)从业务代码中剥离,实现透明化的通信管理。
核心特点
-
独立于业务代码
- 通信逻辑由代理层(Sidecar)实现,开发人员无需在业务代码中处理网络细节(如重试、超时),降低代码复杂度。
- 示例:每个微服务实例旁部署一个 Sidecar 代理,服务间通信通过代理中转。
-
功能模块化
- 内置多种通信功能,包括:
- 负载均衡:请求分发到多个服务实例,避免单点压力。
- 熔断机制:当服务不可用时自动阻断请求,防止级联故障。
- 流量控制:限制请求速率,保护服务稳定性(如限流)。
- 认证与加密:实现服务间的双向 TLS 认证和数据加密(如 mTLS)。
- 内置多种通信功能,包括: