第3章 API网关核心概念高频面试题

本章聚焦网关定义、作用、常见组件及与反向代理的区别。面试官常通过概念性问题考察你对分布式系统入口的底层理解,需做到定义清晰、对比有力、组件分类有序。

① 定义概念 明确网关是什么 ② 作用要点 路由/鉴权/限流 ③ 常见组件 Kong/Spring Cloud Gateway ④ 对比区别 vs 反向代理 ⑤ 总结升华 适用场景+选型建议 回答框架:定义 → 作用 → 组件 → 对比 → 总结升华

Q1:请解释什么是API网关?它的主要作用是什么?

🎯 面试官考察点:基础概念是否准确、能否列举核心作用、是否理解网关在微服务体系中的定位。

📐 回答框架:定义(系统入口层,统一处理请求路由、过滤、转换)→ 作用分点(路由转发、认证鉴权、限流熔断、协议转换、日志监控)→ 强调解耦与统一治理价值。

💡 简短示例回答:API网关是微服务架构的统一入口,负责请求路由、认证鉴权、限流熔断、协议转换和日志监控。它的核心作用是解耦客户端与后端服务,实现统一治理,降低系统复杂度,提升安全性和可观测性。

🔍 可能追问:网关如何处理超时与重试?网关的故障转移机制?网关与负载均衡器的关系?

⚠️ 避坑提醒:避免只背诵定义而不展开作用;不要遗漏“协议转换”这一关键点(如HTTP转gRPC);不要把网关和反向代理完全划等号。

Q2:常见的API网关组件有哪些?各自有什么特点?

🎯 面试官考察点:对业界主流网关的了解程度、能否对比选型差异、是否结合实际场景分析。

📐 回答框架:按技术栈分类(Java系/Go系/Nginx系)→ 列举代表(Spring Cloud Gateway、Kong、Zuul、Nginx+Lua)→ 核心差异(性能、扩展性、社区活跃度、配置方式)→ 给出推荐场景。

💡 简短示例回答:常见组件有Spring Cloud Gateway(响应式、集成Spring生态)、Kong(基于OpenResty、高性能、插件丰富)、Zuul 2(Netty异步)、Nginx+Lua(自定义灵活)。选型时Java系项目优先Spring Cloud Gateway,高并发场景选Kong。

🔍 可能追问:对比Kong和Spring Cloud Gateway的性能基准?网关自定义插件如何开发?Kong的商业版与开源版差异?

⚠️ 避坑提醒:不要只说出名字,必须带特点对比;避免遗漏Zuul 1(阻塞I/O)与Zuul 2的区别;不要忽略Kong的DB依赖关系。

Q3:API网关与反向代理有什么区别?什么时候该用网关而不是反向代理?

🎯 面试官考察点:是否区分两个概念的层次、能否结合业务场景说明、是否理解网关的扩展能力。

📐 回答框架:相同点(都做请求转发、负载均衡)→ 不同点(网关提供认证、限流、熔断、协议转换、监控聚合等应用层能力,反向代理仅做L4/L7转发与基础LB)→ 适用场景(需要集中治理&非功能需求用网关;简单透明代理用反向代理如Nginx)。

💡 简短示例回答:反向代理(如Nginx)侧重底层转发和负载均衡,API网关在此基础上增加了认证、限流、熔断、协议转换、灰度发布等应用层能力。当系统需要统一安全策略、流量管控、多协议接入时选择网关;仅需静态代理和基础LB时反向代理即够用。

🔍 可能追问:Nginx通过Lua也能实现部分网关能力,你怎么看?网关是否一定要用独立组件?网关与Sidecar模式的Istio区别?

⚠️ 避坑提醒:不要只说“网关是反向代理的一种”,要突出网关的应用层扩展;避免忽略Nginx+OpenResty也可以充当网关,但要说明运维复杂度;不要将网关与服务网格概念混淆。
📊 API网关 vs 反向代理 核心对比
对比维度 反向代理 API网关
应用层能力弱(仅L4/L7转发)强(认证、限流、熔断、协议转换、灰度)
配置复杂度低中高
扩展性需额外开发或Lua脚本插件式、Filter链、定制化
典型代表Nginx、HAProxy、Envoy(纯代理模式)Spring Cloud Gateway、Kong、Zuul 2