ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Apache APISIX 演进史:从颠覆 Kong 到顶级 AI 网关

Apache APISIX 演进史:从颠覆 Kong 到顶级 AI 网关 在当今云原生基础设施与大规模分布式系统领域Apache APISIX是中国开源项目走向国际顶级开源软件基金会最为耀眼的标杆之一。今天无论是在腾讯、百度、Bilibili、中国移动等国内互联网与运营商的生产集群中还是在欧盟数字机构、Airbus空中客车等海外大型组织的生产线里APISIX 都在默默承载着每天数百亿乃至数千亿次的 API 调用。甚至当工程师面对跨国零售巨头沃尔玛Walmart等万亿级外企的高级架构师或系统工程师岗位时APISIX、Envoy、Kong 也几乎是高频必考的基础设施技术栈。但退回到 2019 年初在那个微服务网关市场看似已被老牌霸主 Kong 和传统 Nginx 牢固垄断的年代APISIX 究竟是如何破局的它是如何用一套截然不同的底层设计对老一代网关形成降维打击并在历经云原生、多语言生态与大模型时代AI Gateway的数次技术跃迁后依旧稳居第一梯队的本文将深度复盘 Apache APISIX 的完整技术演进脉络拆解其在不同关键历史节点的底层架构决策与设计权衡。一、 诞生与破局一场针对传统网关软肋的架构突袭2019 年初微服务架构在国内外企业中全面普及。Spring Cloud Netflix 体系中的 Zuul 1 逐渐显露疲态基于阻塞式 I/O 的架构在高并发场景下极易耗尽线程池而直接使用原生 Nginx 又面临动态性严重不足的问题——每一次修改路由配置、增减上游节点Upstream都必须执行一次nginx -s reload。在每天需要频繁发布成百上千次微服务的大型互联网公司频繁 reload Nginx 会造成 Worker 进程反复启停。这不仅会引起瞬时 CPU 抖动与内存飙升还会强制断开长连接客户端甚至引发服务雪崩。1. 老牌霸主 Kong 的历史包袱当时海外最炙手可热的开源 API 网关是Kong。Kong 同样基于 OpenRestyNginx LuaJIT构建实现了七层流量的高并发异步非阻塞转发。然而由国内 OpenResty 社区核心成员温铭前奇虎 360 架构师和院生发起的 APISIX 团队敏锐地洞察到了 Kong 在实际生产大规模落地时的致命痛点沉重的关系型数据库依赖早期 Kong 选择将路由规则、消费者认证、插件配置持久化在PostgreSQL或Cassandra中。这意味着网关节点每次启动或刷新配置都要和关系型数据库进行网络 I/O 交互。当网关节点横向扩展到数十个乃至上百个时数据库连接池与并发读取立刻沦为系统单点瓶颈。配置生效延迟高达秒级为了避免每个请求都穿透查询数据库Kong 必须在各个节点本地做缓存并通过定时轮询Polling或数据库通知机制来感知变更。在实际压测与生产发布中一条新路由或鉴权插件从下发到全集群所有节点生效往往需要数秒甚至十几秒。这种“秒级延迟”在追求实时弹性扩缩容、自动化流量调度的云原生环境中是难以接受的。路由算法的退化风险Kong 早期的路由匹配逻辑对大量复杂路由的处理存在线性查找与正则扫描的开销。当路由数量膨胀到上万条时路由查找耗时呈 O(N) 线性增长直接拖慢数据面的单请求吞吐。2. 技术突破彻底抛弃关系型 DB拥抱 etcd Watch面对 Kong 的设计包袱APISIX 从第一行代码开始就确立了颠覆性的技术路线彻底抛弃关系型数据库采用云原生分布式键值存储 etcd 作为唯一的配置中心。这一决策在当时具有极强的技术前瞻性基于 Raft 的强一致性与去中心化高可用etcd 天生支持分布式集群部署读写高吞吐且具备强一致性保障无需像维护传统 DB 主从复制那样引入额外的运维复杂性。gRPC 流式双向长连接与 Watch 机制APISIX 各个 Worker 进程启动后与 etcd 建立基于 HTTP/2 的长连接监听指定前缀目录如/apisix/routes/、/apisix/upstreams/。当控制面发生配置变更时etcd 会通过增量事件流主动毫秒级推送给网关数据面。零重启Zero Reload与进程内热更新APISIX Worker 接收到 etcd 推送后在 Lua 内存中就地更新配置对象整个过程完全不需要重新加载 Nginx 配置或重启 Worker 进程。已有长连接零中断配置下发生效延迟从 Kong 的数秒缩短到小于 2 毫秒。基数树Radixtree极速路由匹配APISIX 自研了lua-resty-radixtree基于 C 语言高效实现了前缀树/基数树路由匹配。无论路由条目是 100 条还是 10 万条路由匹配的时间复杂度始终保持在 O(K)K 为请求 URI 路径深度彻底消除了大规模路由下的 CPU 线性损耗。凭借“毫秒级热下发、零重启、性能领先一个数量级”的核心技术优势APISIX 在架构轻量化和吞吐指标上对早期 Kong 形成了实质性的降维打击。二、 开源与破纪录历时 9 个月成为 Apache 顶级项目2019 年 6 月APISIX 正式在 GitHub 上开源。随后两位创始人全职创立商业化公司支流科技API7.ai并做出了一个决定项目命运的重磅动作将项目所有知识产权完整捐赠给全球最大的开源基金会——Apache 软件基金会ASF。2019 年 10 月APISIX 正式进入 Apache 孵化器。践行“Apache Way”在孵化期间APISIX 团队严格遵循 Apache 之道社区大于代码Community Over Code。项目摒弃了由单一商业公司独断言路的作风建立了公开透明的社区治理规范、异步邮件列表讨论机制与开放的 Committer 晋升通道。全球各地的开发者、企业用户迅速涌入贡献了大量企业级插件与底层性能优化补丁。2020 年 7 月仅历时9 个月APISIX 就在 Apache 基金会以全票赞成的结果顺利通过投票正式毕业成为Apache 顶级项目Top-Level Project, TLP。这一孵化速度打破了当时 Apache 基金会中国开源项目的毕业最快纪录也标志着 APISIX 从一个初露锋芒的开源项目蜕变为了具备全球公信力、中立治理机制的国际化基础设施底座。三、 生态扩张多语言解耦与云原生深化毕业后的 2020 年至 2023 年API 网关领域的竞争进入白热化阶段。云原生生态全面向 Kubernetes 收拢同时服务网格Envoy / Istio强势崛起。APISIX 没有固步自封在 Nginx/Lua 的舒适圈而是大刀阔斧地展开了多语言插件解耦与云原生架构整合。1. 打破 Lua 壁垒Plugin Runner 与 WebAssembly在传统的 OpenResty 网关生态中所有扩展插件都必须用 Lua 语言编写。尽管 Lua 在与 Nginx C 核心集成时具备近乎零开销的性能优势但由于其在企业级后端开发中属于小众语言许多采用 Java、Go、Python 的研发团队在需要根据自身业务定制鉴权、审计或加解密逻辑时望而却步。为了彻底打破语言壁垒APISIX 率先探索出了两条并行扩展路线Plugin Runner跨语言 IPC 机制APISIX 启动一个独立的伴随子进程Plugin Runner支持Go、Java、Python。数据面 Worker 与 Runner 进程通过 Unix Domain Socket (UDS) 建立高效的 IPC 本地通信通道并在其上运行轻量级二进制 RPC 协议。当请求途经特定过滤阶段时APISIX 将请求上下文打包发给 Runner 执行业务逻辑随后回传决策结果。这种方案实现了进程级故障隔离——即便企业自研的 Java/Go 插件发生内存溢出或逻辑 Panic也不会导致网关数据面崩溃。WebAssembly (Wasm) 沙箱运行时为了在支持多语言的同时消除进程间 IPC 通信的开销APISIX 深度集成了基于 Proxy-Wasm 国际标准的 WebAssembly 沙箱运行时。开发者可以使用Rust、C、TinyGo编写高性能插件并直接编译为 Wasm 字节码注入 APISIX 内部执行。这不仅保证了毫秒级的运行速度与语言无关性还借助 Wasm 沙箱天然提供了强健的内存安全防护。2. Kubernetes 原生集成apisix-ingress-controller随着 Kubernetes 成为分布式调度的工业标准传统的边缘网关必须深度融入 K8s 控制面。APISIX 官方推出了apisix-ingress-controller。与社区默认的 Ingress-Nginx 相比它具备显著优势基于 CRD 的精细化流量控制除了兼容标准 K8sIngress资源外提供了原生的ApisixRoute、ApisixUpstream、ApisixPluginConfig、ApisixConsumer等 CRD使得灰度发布Canary Release、蓝绿部署、流量镜像、动态限流可以直接在声明式 YAML 中完成配置。零 Reload 的 Pod IP 直连当后端业务 Pod 频繁重启或扩缩容时传统 Ingress 控制器需要重新渲染并 reload nginx.conf而apisix-ingress-controller监听到 Endpoint/Pod IP 变动后直接增量写入 etcdAPISIX 数据面毫秒级完成上游负载均衡节点刷新彻底消除了动态扩缩容期间的请求丢包与流量抖动。凭借这套兼顾极致性能与敏捷多语言扩展的架构APISIX 迅速在国内外企业级市场建立起稳固的护城河成为替换传统 F5 硬件负载均衡、Spring Cloud Zuul 以及自建 Nginx 集群的首选方案。四、 大模型时代跃迁演进为 AI Gateway2023 年以来生成式人工智能Generative AI与大语言模型LLM迎来了爆发式增长。企业内外部的流量结构发生了深刻变化传统的微服务 API 流量开始大规模向模型推理与 Agent 协作流量倾斜。然而大模型流量对传统 API 网关提出了全新的严峻挑战长连接与首字延迟TTFT大模型几乎全量采用 Server-Sent Events (SSE) 流式返回。若网关启用了传统 HTTP 缓冲区Response Buffering就会把输出积攒成大块后再发给前端导致打字机效果严重滞后极大地恶化用户体验。治理维度从 QPS 转向 Token大模型单次请求的消耗差异巨大限制 QPS 无法防止突发数十万 Token 导致服务被供应商限流或预算失控必须按TPM (Tokens Per Minute)和RPM (Requests Per Minute)实施令牌桶计量。多厂商协议碎片化与高故障率OpenAI、Anthropic Claude、Google Gemini、Azure OpenAI 各自 API 协议与认证方式各不相同且公有云服务常出现 429 速率限制、504 超时甚至局部宕机。APISIX 敏锐地切入这一趋势迅速通过官方插件与架构适配全面进化为了企业级 AI Gateway1.ai-proxy插件统一协议与智能调度APISIX 推出了内置的ai-proxy插件将不同大模型厂商的 API 报文进行了归一化封装协议抽象归一客户端统一发起符合 OpenAI 标准规范的/v1/chat/completions请求APISIX 在数据面自动完成目标厂商协议的双向转换业务层无需针对不同大模型维护专有 SDK。多模型动态权重与成本路由根据各厂商定价、网络延迟及模型能力动态将请求分发至最经济或响应最快的目标源。自动故障降级与无感重试当主模型服务返回 429 或 5xx 错误时网关在毫秒级内自动重试备用厂商或本地私有部署集群如通过 Ollama 或 vLLM 托管的开源模型极大提升了上层 AI 产品的可用性 SLA。2. 深入底层的 SSE 流式长连接优化为了提供极致的打字机交互体验APISIX 在流式处理上进行了深度调优零缓冲直通Bypass Buffering在检测到text/event-stream请求头后自动禁用 Nginx 默认的 response buffering 行为使得上游模型吐出的每一个 Token Chunk 都能在微秒级内直接透传给客户端。流式审计与用量解析在不阻塞流式传输的前提下APISIX 能够在 SSE 连接结束前自动捕获数据块中的usage字段包含prompt_tokens和completion_tokens并实时输出到 Prometheus、OpenTelemetry 或日志中心为企业提供精确到具体部门、租户的 Token 成本账单与安全合规审计。今天APISIX 与阿里巴巴开源的 Higress、专注模型集成的 LiteLLM以及 Envoy 生态的大模型扩展共同构成了现代企业落地生产级 AI 应用的核心网络底座。五、 总结从技术对抗到企业级基础设施的必然选择回顾 Apache APISIX 从 2019 年发起至今的演进史它的成功并非源于偶然的机遇而是源于对底层网络通信与配置状态治理的敏锐判断在诞生之初它敢于打破业内对关系型数据库的思维定势引入 etcd Watch 与基数树路由用“毫秒级热生效与高吞吐”攻破了老一代网关的软肋在成长期它践行 Apache 之道建立国际化开源社区并率先用 Plugin Runner 与 Wasm 打破了单一 Lua 语言的技术孤岛在云原生与 AI 浪潮中它没有固步自封迅速落地 K8s Ingress 控制器并无缝进化为具备 Token 流量治理、协议归一与故障降级能力的 AI Gateway。在做轻量级 API 代理或小规模业务试水时开发者或许很难直观感受到不同网关之间的架构差距。但当面对如沃尔玛Walmart、中国移动或大型金融机构这类万亿级规模的跨国企业时面对的是百万级并发 QPS、跨机房高可用容灾、零宕机热发布以及严格的合规审计与 SLA 承诺。在这类严苛的生产场景中任何一次 Nginx 重载抖动、任何一次配置下发不一致都可能导致直接的商业损失。正因如此像 Apache APISIX 这样历经数年大规模生产千锤百炼、具备扎实架构内核的开源基础设施才会在企业级技术选型与高端架构师岗位要求中始终占据着难以替代的核心位置。
返回列表