在微服务架构中,系统被拆分成了数十甚至成百上千个独立部署的服务。如果没有一个统一的组件来管理这些服务与外部客户端(如 Web、App、第三方系统)的交互,整个系统会陷入极大的混乱。 API 网关(API Gateway) 就是为了解决这种混乱而引入的。它充当了系统架构的“前台”或“唯一入口”(Facade Pattern 的一种实现)。 引入 API 网关主要出于以下几个核心原因,我们可以从客户端的痛点和服务端的治理两个维度来理解: --- 一、 解决客户端调用的痛点(如果不引入网关会怎样?) 如果没有 API 网关,客户端需要直接与后端的各个微服务通信(直连模式),这会导致严重的问题: 1. 客户端需要维护大量网络地址:客户端必须知道“订单服务”、“用户服务”、“支付服务”各自的 IP 或域名。一旦后端服务扩容、迁移或拆分,前端代码就需要大量修改。 2. 网络请求次数过多(延迟高):一个复杂的页面可能需要调用 5 个不同的微服务才能凑齐数据。在移动网络下,发起 5 次 HTTP 请求会导致严重的延迟和耗电。 3. 安全风险暴露:所有微服务都直接暴露在公网,增加了被攻击的风险。 ...