2. IDP 网络拓扑基础:服务网格、API 网关、负载均衡器在 IDP 中的角色与数据流
内部开发者平台(IDP)的网络拓扑是流量治理的骨架。服务网格、API 网关和负载均衡器三者分工明确,又相互协作,共同构成 IDP 的南北向与东西向流量通道。理解每个组件的角色以及数据流经过的路径,是后续分析 SLO 违约与流量可视化的前提。
2.1 三大核心组件的角色定义
| 组件 | OSI 层级 | 核心职责 | 典型产品 |
|---|---|---|---|
| 负载均衡器 | L4 / L7 | 流量分发、健康检查、会话保持、DDoS 基础防护 | NLB / ALB / HAProxy |
| API 网关 | L7 | 请求路由、认证鉴权、限流熔断、协议转换、API 版本管理 | Kong / APISIX / Envoy Gateway |
| 服务网格 | L7 | 东西向流量管理、mTLS、可观测性、灰度发布、故障注入 | Istio / Linkerd / Consul Connect |
关键认知: 负载均衡器处理“入口流量分发”,API 网关处理“业务策略执行”,服务网格处理“服务间通信治理”。三者不是替代关系,而是分层协作关系。
2.2 数据流全景:从用户请求到后端服务
一个典型的 IDP 请求路径会依次经过以下节点:
- 外部 DNS → 负载均衡器: 用户请求经 DNS 解析到达公网负载均衡器,完成 TLS 终止和第一层流量分发。
- 负载均衡器 → API 网关: 负载均衡器将流量转发至 API 网关集群,网关根据路由规则匹配目标服务。
- API 网关 → 服务网格入口网关: 网关将请求转发至服务网格的 Ingress Gateway,注入链路追踪上下文。
- 服务网格 Sidecar 代理: 请求进入 Pod 后由 Sidecar 拦截,执行流量策略(重试、超时、熔断)。
- 服务间调用: 若请求需要调用下游服务,Sidecar 通过 mTLS 加密转发至目标服务的 Sidecar。
流量路径口诀: 入口 LB → API 网关 → 网格入口 → Sidecar → 目标服务。每一步都产生可观测性数据,是 SLO 违约定位的关键线索。
2.3 组件协作关系图
下图展示了 IDP 中负载均衡器、API 网关与服务网格的拓扑连接关系,以及数据流在各层之间的传递路径。
2.4 数据流中的关键决策点
每个组件在数据流中都会执行特定的决策,这些决策直接影响 SLO 的达成情况:
| 决策点 | 组件 | 决策内容 | 对 SLO 的影响 |
|---|---|---|---|
| 健康检查 | 负载均衡器 | 后端实例是否存活 | 影响可用性 SLO |
| 限流 | API 网关 | 是否允许请求通过 | 影响吞吐量 SLO |
| 熔断 | 服务网格 | 是否快速失败 | 影响延迟 SLO |
| 重试 | 服务网格 | 是否重试失败请求 | 影响错误率 SLO |
2.5 南北向与东西向流量分离
IDP 网络拓扑中,流量分为两个维度:
- 南北向流量: 外部用户到内部服务的流量。路径为:负载均衡器 → API 网关 → 服务网格入口 → Sidecar → 目标服务。此路径上的组件负责认证、限流、TLS 终止。
- 东西向流量: 服务之间的内部调用。路径为:服务A Sidecar → 服务B Sidecar。此路径上的组件负责 mTLS、流量策略、分布式追踪。
常见误区: 不要将 API 网关直接暴露给外部流量而不经过负载均衡器。负载均衡器提供 DDoS 防护和 TLS 卸载,API 网关专注业务策略,职责分离才能保障稳定性。
2.6 服务网格 Sidecar 的数据流细节
Sidecar 代理(通常为 Envoy)是服务网格的数据面核心。下图展示了一个请求在 Sidecar 内部的处理流程:
2.7 组件选型对比
在 IDP 建设过程中,不同规模和技术栈的团队对组件的选型存在差异。下表对比了主流方案的关键特性:
| 维度 | 负载均衡器 | API 网关 | 服务网格 |
|---|---|---|---|
| 配置复杂度 | 低 | 中 | 高 |
| 性能开销 | 极低 | 低 | 中(Sidecar 增加 5-10% 延迟) |
| 可观测性 | 基础指标 | 请求级指标 | 全链路追踪 + 指标 + 日志 |
| 安全能力 | TLS 终止 | 认证、鉴权、WAF | mTLS、零信任 |
| 适用场景 | 入口流量分发 | API 管理、聚合 | 微服务间通信治理 |
实践建议: 在 IDP 初期,可以先部署负载均衡器 + API 网关,满足南北向流量治理需求。当微服务数量超过 20 个时,再引入服务网格治理东西向流量,避免过早引入复杂度。
2.8 数据流与 SLO 违约的关联
每个组件在数据流中产生的指标,都是 SLO 违约分析的数据源:
- 负载均衡器: 5xx 错误率、后端响应时间、健康检查失败次数。
- API 网关: 限流触发次数、认证失败率、路由匹配失败次数。
- 服务网格: 重试次数、熔断打开次数、mTLS 握手失败次数、延迟分布。
当 SLO 违约发生时,流量可视化系统需要从这些组件的指标中快速定位瓶颈点。例如,如果 API 网关的限流触发次数突增,说明上游负载均衡器分发流量过大;如果服务网格的重试次数突增,说明下游服务出现异常。