← 返回题目列表

微服务架构中 API 网关的作用是什么?

高频 中等 第 5 / 25 题 更新于 2026/07/28
API网关路由鉴权限流

简化版

API 网关是微服务系统对外流量的统一入口,负责路由转发、认证鉴权、限流、灰度、协议转换、日志监控等横切能力。它的价值是把公共入口逻辑从业务服务中抽出来,让后端服务专注业务。

详细版

API 网关常见职责包括:

  1. 统一入口:客户端只访问网关,不直接暴露内部服务。
  2. 路由转发:根据路径、Header、版本、租户等规则转发到目标服务。
  3. 认证鉴权:校验 Token、签名、权限、租户身份。
  4. 限流与熔断:保护后端服务,防止突发流量打垮系统。
  5. 灰度发布:按用户、比例、地域、版本把流量切到新服务。
  6. 协议适配:对外 HTTP,对内 RPC 或不同 HTTP 接口。
  7. 统一观测:记录访问日志、指标、TraceId。

网关不应该承载太多复杂业务逻辑,否则会变成新的“大单体”。业务判断应尽量留在业务服务,网关只做入口层通用能力。

完整版教学

一、为什么微服务需要网关

没有网关时,客户端要直接知道很多后端服务地址:

App -> 用户服务
App -> 商品服务
App -> 订单服务
App -> 支付服务

这样会带来几个问题:客户端和后端拓扑强耦合;服务拆分或迁移会影响客户端;认证、限流、日志等逻辑要在每个服务重复做;内部服务地址暴露给外部也不安全。

网关把这些问题收口:

客户端 -> API 网关 -> 内部微服务

客户端只关心统一入口,后端服务可以在内部演进。

二、网关的核心职责

网关首先是路由层。它根据请求路径、域名、Header、参数、用户身份等信息决定流量去哪里。例如:

/api/users/**  -> user-service
/api/orders/** -> order-service
/api/pay/**    -> payment-service

其次是安全入口。网关可以统一校验 JWT、OAuth2 Token、签名、防重放、黑白名单,把非法请求挡在业务服务之前。

再次是流量治理。比如某个接口每秒最多 1000 次请求,超过后直接拒绝或降级,避免后端被冲垮。

最后是可观测入口。网关天然处在请求入口,适合生成或透传 TraceId,记录请求耗时、状态码、流量来源。

三、网关和负载均衡有什么区别

负载均衡更偏四层或七层流量分发,关注“把请求分给哪台机器”。API 网关更偏应用入口,关注“这个请求有没有权限、应该进哪个业务服务、是否命中灰度、是否需要限流”。

能力负载均衡API 网关
主要目标分摊流量管理 API 入口
关注层次网络/连接/实例请求/用户/接口/版本
常见能力轮询、权重、健康检查鉴权、路由、限流、灰度、协议适配
是否理解业务 API通常较少通常较多

实际系统里二者经常一起出现:外层 Nginx 或云负载均衡接公网流量,内层 API 网关做应用级治理。

四、网关不能做什么

网关最容易犯的错误是塞太多业务逻辑。

例如订单是否能取消、优惠券是否可用、用户是否满足风控条件,这些规则应由订单、营销、风控等业务服务判断。网关最多负责“这个用户有没有访问该接口的权限”,不应该负责“这笔订单在业务上能不能操作”。

如果把业务规则放进网关,会出现两个问题:

  1. 网关越来越胖,所有团队都要改网关。
  2. 业务规则分散在网关和服务里,排查和维护困难。

所以网关适合放横切能力,不适合放领域业务规则。

五、网关高可用设计要点

网关是入口,挂了影响面很大,所以要避免单点。

常见设计包括:多实例部署、前置负载均衡、无状态化、配置动态下发、限流规则灰度生效、关键路径降级、指标告警完善。

同时,网关自身也要控制复杂度。规则太多、插件太重、脚本动态执行太泛滥,都会让网关成为性能瓶颈或稳定性风险。

六、常见误区与追问

这道题要紧扣「API 网关」本身回答,不能把它混成泛泛的微服务架构套话。面试官通常会沿着“为什么需要、流程怎么走、失败怎么兜、代价是什么”继续追问,所以回答要覆盖服务边界、通信方式、网关/BFF、数据归属、版本兼容和部署治理。

回答层次要讲清的内容容易漏掉的边界
核心结论API 网关是外部流量进入微服务体系的统一入口,承担路由、鉴权、限流、协议转换和观测等横切能力不要停在名词解释
流程机制客户端请求网关 -> 执行认证鉴权 -> 匹配路由规则 -> 限流和灰度 -> 转发后端服务 -> 记录日志指标要说清触发点、状态变化、确认点和失败兜底
工程取舍网关可以统一给 100 个后端服务做 JWT 校验和限流,但不应把复杂业务编排都塞进网关微服务提升团队自治和独立演进能力,但会带来分布式调用、数据一致性、依赖治理和运维复杂度
API 网关 面试拆解:
1. 客户端请求网关
2. 执行认证鉴权
3. 匹配路由规则
4. 限流和灰度
5. 转发后端服务
6. 记录日志指标

记忆钩子:先给结论,再拆流程,再讲数字例子和失败边界;回答「API 网关」时要围绕题目问法收束,不要把相邻概念堆成一段没有重点的名词清单。

  • 误区:API 网关就是 Nginx 反向代理。 网关还承担认证、限流、灰度、协议转换、观测和治理策略。
  • 误区:所有业务逻辑都可以放网关。 网关应保持薄,复杂业务编排应放 BFF 或业务服务。
  • 误区:网关单点问题不重要。 网关是入口关键路径,必须多副本、限流、熔断和降级。
  • 追问:网关和 BFF 区别? 网关偏通用入口治理,BFF 偏面向端的业务聚合。
  • 追问:网关如何做高可用? 多实例部署、负载均衡、无状态化、健康检查和配置灰度。
  • 追问:网关容易成为瓶颈吗? 会,所以要容量规划、连接池、异步 IO、限流和观测。

七、加强记忆

API 网关可以记成“微服务的大门口”:外部请求先到这里做身份检查、路线选择、流量控制和入口记录;但大门口不应该替每个业务部门做业务决策,否则网关会从入口层变成新的业务大单体。