API Gateway 是微服务架构中的核心组件之一,作为系统的统一流量入口,负责请求路由、安全管控、流量协调等功能,有效简化了客户端与复杂微服务拓扑的交互,是保障微服务架构稳定性、安全性与可管理性的关键基础设施,是系统的神经中枢。
核心功能
1. 智能路由与流量调度
作为“交通枢纽”,Gateway是所有请求的第一入口,将流量精准、高效地导向后端服务;
- 智能路由:根据请求路径、方法、头部等进行静态规则匹配,将请求路由至目标服务。
- 负载均衡:与服务中心(如Nacos、Eureka)联动,动态感知服务实例的上下线与健康状态,并结合轮询、权重、哈希等策略实现客户端负载均衡。
2. 统一安全防护
作为"免疫系统",Gateway统一处理认证、授权、加密和威胁防护;
- 身份认证:集中校验请求身份,支持OAuth 2.0、JWT、API密钥等多种模式。
- 权限控制:基于角色或策略,对API、方法乃至数据字段进行精细访问控制。
- 威胁防护:提供基础的防攻击能力,如应对重放攻击、SQL注入尝试等。
3. 可观测性数据入口
作为"感知器官",Gateway收集所有进出系统的流量数据,为监控、日志、追踪提供统一入口;
- 指标(Metrics):自动生成请求量、延迟、错误率等黄金指标,并暴露给Prometheus。
- 日志(Logging):详细记录访问日志,并可与追踪ID关联,便于问题排查。
- 链路追踪(Tracing):为每个请求注入或传递唯一追踪ID(如
X-Request-ID),串联起跨服务的调用链。
4. 弹性流量治理
作为“弹性盾牌”,网关在流量洪峰和依赖故障时,为后端服务提供关键的保护层;
- 限流:通过令牌桶或漏桶算法限制请求频率,防止服务过载。
- 熔断与降级:实时监控下游服务的健康状况,达到阈值时快速熔断并返回预设的降级响应,避免系统雪崩。
- 超时与重试:配置可重试的错误类型和超时时间,提升请求最终成功率。
5. 请求/响应转换
作为“适配器”,Gateway实现协议与数据的转换,简化客户端与异构后端服务的交互;
- 协议转换:在HTTP/1.1、HTTP/2、gRPC、WebSocket等协议间进行桥接。
- 内容改写:对请求/响应的头部、参数、体进行增删改,或完成数据转换(如XML转JSON)。
- API聚合:聚合多个后端服务响应,以单次客户端请求实现复杂业务,降低开销。
网关搭建步骤
1. 创建项目,引入nacos服务发现和gateway依赖

2. 配置application.yml,包括服务基本信息、nacos地址、路由;

路由配置
1. 路由四大核心配置
- 路由ID:路由的唯一标识符。
- 目标URI:路由的目标地址。
http://代表固定URL,lb://服务名代表从注册中心发现并负载均衡。 - 路由断言:定义匹配请求的条件(如路径、Header),只有满足所有条件的请求才会进入此路由。
- 路由过滤器:用于处理请求和响应的逻辑(如修改Header、添加参数)。
2. 路由断言工厂

3. 路由过滤器
过滤器的作用:对路由的请求或响应做加工处理。
1>Gatewayfilter:在路由配置中通过 filters 定义。

2>DefaultFilter:在Spring配置中通过 spring.cloud.gateway.default-filters 定义。

3>GlobelFilter:实现 GlobalFilter 接口的Bean,可自定义过滤逻辑。

过滤器执行顺序:所有过滤器的执行顺序完全由 order 值决定,值越小优先级越高。当order值相同时,默认顺序为:GatewayFilter → DefaultFilter → GlobalFilter。
- 每个过滤器都必须指定一个int类型的order值,order值越小,优先级越高,执行顺序越靠前。
- GlobalFilter通过实现Ordered接口,或者添加@Order注解来指定order值,由我们自己指定
- 路由过滤器和defaultFilter的order由Spring指定,默认是按照声明顺序从1递增。
- 当过滤器的order值一样时,会按照 defaultFilter >路由过滤器>GlobalFilter的顺序执行。
网关跨域问题
当域名不同或者域名相同、端口不同时,浏览器就会禁止请求的发起者与服务端发生跨域ajax请求,请求被浏览器拦截。通常采用CORS方案,只需简单配置即可解决;

另外,如果配置需要更复杂的动态逻辑(例如根据请求动态决定是否允许跨域),可以通过编写全局过滤器实现。
调用流程示例
- 以 HTTP 请求为例:
- 1.请求接入:客户端向 Gateway 的暴露端点发起请求。
- 2.安全与治理:Gateway 依次执行安全链(验证 API Key 或 JWT 令牌)与治理链(限流、熔断判断)。若任一环节失败,则直接返回错误响应。
- 3.路由转发:通过安全校验后,Gateway 根据路由断言匹配规则,从服务发现中心获取健康实例列表,并利用负载均衡算法确定目标服务实例,转发请求。
- 4.后置处理:Gateway 接收后端服务的响应,按需执行协议转换、数据格式统一、响应头修改或API结果聚合,并统一异常格式。
- 5.响应与观测:将最终响应返回客户端(如 JSON 格式)。与此同时,全程的访问日志、性能指标与链路追踪数据已被收集。
常见 API Gateway 工具
Spring Cloud Gateway:当前技术栈首选,文中示例使用的技术。
Kong/APISIX:基于 OpenResty,插件化架构支持扩展。
Nginx:通过反向代理和 Lua 脚本实现简易网关功能。
等等............
API Gateway 的设计需平衡灵活性与性能,根据业务需求选择合适的技术栈。
1052

被折叠的 条评论
为什么被折叠?



