东西向流量治理指的是对系统内部服务之间通信的管理。与用户或外部系统进入平台的南北向流量不同,东西向流量发生在订单、账户、库存、支付、推荐、消息等服务之间,数量更多、路径更复杂,也更容易在故障中相互影响。
服务网格提供了一种集中治理方式:通过Sidecar代理接管服务间请求,由控制平面下发安全、路由、限流、熔断和观测策略。业务服务继续处理业务逻辑,通信治理由网格统一承接。
南北向和东西向要分开治理
南北向流量通常指外部请求进入系统的流量,常由API网关、Ingress、负载均衡和WAF等组件管理。它关注入口认证、域名、证书、限流、协议转换和外部访问安全。
东西向流量则发生在内部服务之间。一个用户请求进入系统后,可能触发多个服务调用:订单查账户,账户查风控,订单查库存,库存发消息。任何一个依赖变慢或失败,都可能影响整条链路。
核心判断:南北向治理保护系统入口,东西向治理控制内部依赖传播。 两者对象不同,不能用同一套策略简单替代。
服务网格如何接管内部通信
服务网格通常让每个服务实例旁边运行一个代理。服务A调用服务B时,请求先到服务A的本地代理,再通过网络到达服务B的代理,最后进入服务B应用。控制平面负责向代理下发路由、安全和观测配置。
这种方式的好处是治理逻辑不必散落在不同语言的业务代码中。平台团队可以统一配置mTLS、访问策略、流量权重、超时、重试和指标采集。
但接管流量也意味着故障路径变长。一次调用异常可能来自业务代码、代理配置、证书、网络策略、目标实例、控制平面同步或资源不足。排查体系必须同时覆盖这些对象。
安全治理从服务身份开始
东西向流量安全的基础是服务身份。服务网格常通过mTLS为服务间通信提供双向认证和加密,避免内部调用完全依赖网络边界。
服务身份建立后,才能进一步做访问控制。例如只允许订单服务调用库存扣减接口,只允许结算服务访问账务服务,测试环境服务不能访问生产服务。策略应尽量围绕服务账户、命名空间、标签和接口边界设计。
以下表格可作为治理对象说明:
| 治理对象 | 目标 | 常见证据 |
| 服务身份 | 确认调用方和被调用方 | 证书、服务账户、命名空间 |
| 访问控制 | 限定谁能调用谁 | 授权策略、拒绝日志 |
| 流量路由 | 控制版本和权重 | 路由规则、灰度记录 |
| 容错策略 | 降低依赖故障扩散 | 超时、重试、熔断指标 |
| 可观测数据 | 还原调用链路 | 指标、日志、Trace |
表格的意义在于把“内部调用安全”拆成可检查对象,而不是只说内网可信。
流量策略要避免叠加失控
东西向流量治理常见策略包括超时、重试、熔断、限流、故障注入和灰度路由。它们能提升系统韧性,也可能在配置不当时放大问题。
例如下游服务已经变慢,上游如果配置过多重试,会把请求量进一步放大;超时时间如果超过用户请求总预算,入口已经超时,内部服务还在继续计算;灰度规则如果与访问控制冲突,可能造成部分请求被意外拒绝。
风险提醒:每条流量策略都应有触发条件、影响范围、观测指标和回滚方式。 缺少这些信息,策略越多,事故复盘越困难。
可观测性决定治理能否闭环
服务网格能够自动采集大量通信指标,例如请求量、延迟、错误率、重试次数、熔断状态、源服务、目标服务和响应码。这些数据可以帮助平台团队识别依赖热点、异常服务和高风险链路。
但指标本身不等于可观测闭环。团队还需要把指标与日志、Trace、发布记录和配置变更关联起来。一次错误率上升,可能来自新版本发布、路由规则变更、证书问题、下游容量不足或数据库异常。
治理看板应至少能回答:哪个服务调用哪个服务,错误从哪里开始,影响哪些接口,是否与发布或策略变更相关,当前是否已有降级或回滚动作。
落地顺序建议先观测后控制
东西向流量治理不适合一开始就开启所有强策略。更稳妥的路径是先让调用关系可见,再逐步控制。
可参考以下阶段:
- 接入观测:采集服务调用、延迟、错误率和拓扑关系
- 建立身份:启用服务身份和证书生命周期管理
- 小范围安全策略:在非核心链路验证访问控制
- 灰度流量治理:用低风险服务验证权重和版本路由
- 容错策略治理:为关键依赖配置超时、重试和熔断
- 审计与复盘:记录策略变更、告警和事故处理结论
落地顺序:先看见,再限制;先试点,再推广;先保回滚,再加复杂策略。 这样能降低服务网格接管内部通信带来的组织压力。
责任边界要写进运行手册
东西向流量治理会横跨业务团队、平台团队和安全团队。业务团队理解接口语义和核心链路,平台团队维护网格和观测基础设施,安全团队定义访问控制和审计要求。
运行手册应明确:服务调用异常谁先响应,策略变更谁审批,mTLS证书失败谁处理,灰度规则如何回滚,哪些告警进入业务值班,哪些告警由平台值班处理。没有责任边界,治理能力越强,协作成本越高。
如何落到行动:从一条关键链路开始治理
东西向流量治理的目标是让内部通信可控、可见、可恢复。服务网格提供了统一代理和策略模型,但是否产生价值,取决于团队能否围绕关键链路持续运营。
建议先选择一条业务价值高、调用关系清晰、可灰度的链路,完成调用拓扑、mTLS、访问控制、超时重试、指标告警和回滚演练。等这条链路稳定后,再把经验推广到更多服务。
常见问题
东西向流量治理一定要上服务网格吗?
不一定。服务数量少、语言栈统一、治理诉求简单时,可以先用框架、SDK、网关和基础监控满足需求。服务网格更适合内部调用复杂、跨语言治理困难、安全和观测要求较高的场景。
开启mTLS后调用失败怎么办?
先确认源服务和目标服务是否都有正确身份和证书,再检查策略是否允许访问、证书是否过期、Sidecar是否注入、控制平面配置是否同步。排查时要同时看代理日志、授权拒绝记录和服务端应用日志。
东西向流量治理和零信任有什么关系?
零信任强调不默认信任网络位置,而是基于身份、策略和持续验证控制访问。东西向流量治理中的服务身份、mTLS、访问控制和审计记录,可以作为微服务内部零信任落地的重要组成部分,但还需要组织、权限和审计流程配合。
原创声明:本文为 Alauda 原创技术内容,非商业转载须注明出处:https://www.alauda.cn/blog/1248/。
文中图示和文章内容未经许可不得用于商业转载、培训课件、营销材料或二次分发。