1. 先理清这条链路的角色:每一环到底在干什么
标题里这条链路“xxop网关 → APISIX集群(ApisixRoute) → 业务gateway模块”看起来很绕,很多刚接触的人第一反应是:一个请求有必要过三层网关吗?这不是自己给自己加延迟吗?等你看完整篇文章就会明白,这三层网关做的事情完全不一样,每一层都在干不同的活。
先说xxop网关。我把它理解为公司内部的统一流量入口网关,也就是整个对外API体系的第一道大门。它承接域名解析、SSL证书卸载、基础的身份认证、风控拦截、黑白名单、流量染色这些偏“接入层”的职责。为什么需要这么一层?因为如果你的后端服务直接暴露在外网,任何一次恶意扫描、异常流量都会直接打到业务服务上,成本和风险都不可控。xxop作为一个接入型网关,把“谁能进”这个问题在入口处解决掉。
接着是APISIX集群。APISIX是开源的高性能云原生API网关,它是基于Nginx和OpenResty做的,但跟传统Nginx配置最大的区别在于——APISIX支持动态配置,而且它能以声明式的方式运行在Kubernetes环境里。这里提到的ApisixRoute,就是APISIX在Kubernetes环境下的一种自定义资源(CRD,Custom Resource Definition)。简单理解就是,你不必去改APISIX服务器的配置文件,而是通过Kubernetes的API资源对象来描述路由规则,比如:当请求的域名是xxx.com、路径是以/order/开头,就转发到某个Kubernetes Service。这种声明式管理方式,让路由配置可以走代码评审、版本控制、自动发布,而不是登录服务器去手工改Nginx配置。
再往下是业务gateway模块。这里的“gateway”不是指基础设施网关,而是业务侧自己实现的一个网关模块,比如基于Spring Cloud Gateway、Netty或自研框架写出来的服务。它离业务最近,负责的是参数校验、协议转换、业务鉴权、聚合调用、数据裁剪这类跟业务强相关的事。它跟xxop、APISIX的最大区别是:前两层可以外包给基础设施团队统一运维,这一层是业务团队自己的领地,要经常迭代、频繁发版。
理解到这里,你已经能回答“这个链路为什么这么长”了:因为每一层都在解决不同维度的问题。接入层解决安全和入口的问题,路由层解决动态调度和流量的精细治理,业务gateway模块解决业务通用逻辑的收口。它们不是重复建设,是分层治理。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 一次请求的完整旅行:传统网关链路 vs Serverless的路径差异
理解了每一环的定义之后,我们用一个具体请求来演示两条链路,才能真正体会“区别”在哪里。假设有一个移动端请求要查询订单详情,请求体里带着用户的token和订单ID。
2.1 传统链路:三次跳转,每一跳都做了什么
客户端发起HTTPS请求,到达xxop网关。xxop先做TLS终止,把加密报文解出来,然后校验token是否存在且有效,再检查这个用户的IP或设备指纹是否命中风控策略。如果都通过了,它会往请求头里写入一些透传信息(比如userId、设备ID、来源渠道),然后把请求转发给APISIX集群。
请求到了APISIX之后,APISIX根据请求的域名和路径,在内存中查找到匹配的ApisixRoute路由规则,应用路由上挂载的插件链,比如限流限速、CORS跨域处理、日志采集。之后它会通过服务发现能力把请求转发到对应的Kubernetes Service上,也就是业务gateway模块的Pod。
业务gateway模块收到请求后,先做反序列化,然后做参数校验,校验失败直接返回参数异常,校验通过之后再去调用订单中心、商品中心等下游服务。如果一个查询要聚合订单信息、商品信息、物流信息,业务gateway模块里可能还要做并行调用和结果拼装。全部拿回来后,它把拼好的数据结构按协议要求裁剪字段,以统一格式返回给上游。直到这一步,用户请求才算真正完成。
这条链路的总耗时,在正常网络环境下降落下来大概是几十毫秒到一百多毫秒的级别。这里头的每一步都有明确的价值:xxop挡住了无效流量,APISIX做了路由和限流,业务gateway模块做了参数和聚合。但也要承认,链路越长,单点越多,故障排查越复杂。
2.2 Serverless链路:API GW直通函数,中途少了什么
再看Serverless架构。整个请求链路变成:客户端 → API网关(通常用云厂商自带的或者APISIX等自建网关) → 函数计算(Function as a Service)。
API网关这一层跟APISIX的角色很像,负责路由匹配、鉴权、限流、参数映射。但跟传统链路的一个关键差异是,网关匹配到路由之后,直接触发的不是长驻网关服务,而是一个函数。比如云厂商的函数计算平台,会根据调用请求把某个函数的代码实例启动起来,执
