市场主流网关全景

API 网关市场分层:

┌─────────────────────────────────────────────────────┐
│  云厂商托管网关                                       │
│  AWS API Gateway  阿里云 API网关  腾讯云 API网关       │
├─────────────────────────────────────────────────────┤
│  企业级开源网关                                       │
│  APISIX   Kong   Nginx   Traefik   Envoy            │
├─────────────────────────────────────────────────────┤
│  框架级网关(应用层)                                  │
│  Spring Cloud Gateway   Zuul   Soul                 │
├─────────────────────────────────────────────────────┤
│  服务网格 Sidecar                                    │
│  Istio(Envoy)   Linkerd   Dapr                      │
└─────────────────────────────────────────────────────┘

主流网关横向对比

一、核心指标对比

对比维度

APISIX

Kong

Nginx

Traefik

Envoy

Spring Cloud GW

底层技术

Nginx + LuaJIT

Nginx + LuaJIT

Nginx

Go

C++

Java (Spring)

开源协议

Apache 2.0

Apache 2.0

BSD

MIT

Apache 2.0

Apache 2.0

诞生年份

2019

2015

1994

2016

2016

2019

背后组织

Apache 基金会

Kong Inc.

Nginx Inc.

社区

CNCF

VMware

配置方式

etcd(动态)

PostgreSQL(动态)

文件(静态)

文件/动态

xDS API

代码/配置

动态配置

✅ 毫秒级

✅ 秒级

❌ 需reload

性能(RPS)

🏆 最高

极高

内存占用

极低

学习曲线

极陡

低(Java友好)


二、性能对比(基准测试)

单核 RPS 对比(代理简单 HTTP 请求):

APISIX          ████████████████████  23,000 RPS
Kong            ████████████░░░░░░░░  14,500 RPS
Nginx(原生)     ██████████████████░░  22,000 RPS
Traefik         ████████░░░░░░░░░░░░  10,200 RPS
Spring Cloud GW ████░░░░░░░░░░░░░░░░   5,800 RPS
Envoy           ██████████████░░░░░░  17,000 RPS

延迟 P99(越低越好):

APISIX          ██░░░░░░░  1.2ms
Kong            ████░░░░░  3.1ms
Nginx(原生)     ██░░░░░░░  0.9ms
Traefik         ████░░░░░  4.2ms
Spring Cloud GW ████████░  8.5ms
Envoy           ███░░░░░░  2.8ms

数据来源:APISIX 官方 Benchmark(2023)
实际性能因场景而异,仅供参考

三、功能维度详细对比

🔐 安全与认证

功能

APISIX

Kong

Nginx

Traefik

Spring Cloud GW

JWT

✅ 内置

✅ 内置

❌ 需lua

OAuth2

✅ 内置

✅ 内置

mTLS

✅ 手动

API Key

LDAP

✅ Enterprise

Casbin RBAC

✅ 内置

需集成

OIDC/Keycloak

IP 黑白名单

需编码

WAF

✅ 插件

✅ Enterprise

✅ ModSecurity

🚦 流量管理

功能

APISIX

Kong

Nginx

Traefik

Spring Cloud GW

限流(令牌桶)

需lua

限流(滑动窗口)

✅ Enterprise

需编码

灰度发布

需编码

蓝绿部署

手动

需编码

熔断降级

重试

负载均衡算法

🏆 最多

WebSocket

gRPC

✅ + 转码

📊 可观测性

功能

APISIX

Kong

Nginx

Traefik

Spring Cloud GW

Prometheus

❌ 需配置

SkyWalking

Zipkin

OpenTelemetry

Datadog

需SDK

Kafka日志

需编码

☁️ 云原生与生态

功能

APISIX

Kong

Nginx

Traefik

Spring Cloud GW

K8s Ingress

K8s Gateway API

服务发现(Nacos)

服务发现(Consul)

服务发现(Eureka)

Helm 部署


APISIX vs Kong(最直接竞品)

两者架构极为相似,是最常被放在一起比较的组合

相同点:
  ✅ 都基于 Nginx + LuaJIT
  ✅ 都有插件系统
  ✅ 都支持 Admin API
  ✅ 都支持动态配置
  ✅ 都有 Dashboard

核心区别:
┌─────────────────────────────────────────────────────┐
│                   控制面存储                          │
│                                                     │
│  APISIX → etcd                                      │
│    优点:轻量、高可用、Watch机制实现毫秒级推送          │
│    缺点:引入 etcd 依赖                               │
│                                                     │
│  Kong   → PostgreSQL                                │
│    优点:关系型存储,数据查询灵活                      │
│    缺点:数据库成为性能瓶颈,配置变更较慢              │
└─────────────────────────────────────────────────────┘

配置下发速度对比

修改一条路由规则,生效时间:

APISIX:  ██ < 100ms   (etcd Watch 推送)
Kong:    ████████ ~5s  (轮询数据库)

在需要频繁动态变更路由的场景(如 A/B 测试、灰度发布)
APISIX 的优势非常明显

性能对比

并发1000,持续60秒压测(代理+JWT验证):

          吞吐量(RPS)    P99延迟    CPU占用
APISIX:   18,500        2.1ms      45%
Kong:     11,200        5.8ms      67%

APISIX 比 Kong 高约 65% 吞吐量

开源策略对比

Kong 的"商业化陷阱":

功能                    Kong社区版    Kong企业版
─────────────────────────────────────────────
基础路由                   ✅           ✅
JWT/Key 认证               ✅           ✅
RBAC 权限控制              ❌        ✅(收费)
高级限流(滑动窗口)         ❌        ✅(收费)
Dashboard                 ❌        ✅(收费)
OpenID Connect            ❌        ✅(收费)
Secrets 管理              ❌        ✅(收费)

APISIX 的策略:
  ✅ 所有核心功能完全开源免费
  ✅ Dashboard 开源免费
  ✅ RBAC 开源免费
  商业支持由 API7.ai 提供(可选)

APISIX vs Nginx(纯 Nginx 方案)

很多团队的疑问:"我们已经用 Nginx 了,为什么要换?"

Nginx 的痛点(在微服务场景):

1. 修改配置必须 reload
   ├── 生产环境 reload 有短暂中断风险
   ├── 频繁变更(灰度/AB测试)极不方便
   └── 无法做到真正的动态路由

2. 无服务发现
   ├── 上游 IP 变化必须手动修改配置
   └── 容器化环境 Pod IP 频繁变化 → 噩梦

3. 无健康检查(社区版)
   ├── 需要配合 keepalived 等额外工具
   └── 主动健康检查需要 Nginx Plus(收费)

4. 监控能力弱
   └── 需要大量额外配置才能接入 Prometheus

5. 插件开发困难
   └── C 模块开发门槛高

APISIX 完美解决以上所有问题,同时保持 Nginx 级别性能

APISIX vs Traefik

Traefik 的定位:
  ✅ Docker / K8s 自动服务发现极佳
  ✅ 零配置接入,对开发者友好
  ✅ Go 语言实现,容器生态原生
  ❌ 性能不如 APISIX(2~3倍差距)
  ❌ 插件生态薄弱,自定义能力差
  ❌ 高级流控/安全功能需要 Traefik EE

适用场景对比:
  Traefik → 中小规模,K8s 自动发现,开发阶段
  APISIX  → 大规模生产,需要精细控制,企业级

一个形象的比喻:
  Traefik = 傻瓜相机(简单易用)
  APISIX  = 单反相机(功能强大,灵活可控)

APISIX vs Spring Cloud Gateway

Spring Cloud Gateway 的问题:

┌─────────────────────────────────────────────┐
│  性能瓶颈                                    │
│  JVM 启动慢、内存占用高(最少 256MB)          │
│  RPS 约为 APISIX 的 1/4                      │
├─────────────────────────────────────────────┤
│  技术栈绑定                                  │
│  只能在 Java/Spring 生态中使用                │
│  多语言团队不友好                             │
├─────────────────────────────────────────────┤
│  运维复杂                                    │
│  每次修改路由需要重新部署 Java 应用            │
│  无独立的管理界面                             │
├─────────────────────────────────────────────┤
│  功能局限                                    │
│  限流、鉴权等需要大量自己编写代码              │
└─────────────────────────────────────────────┘

什么时候用 Spring Cloud Gateway?
  → 纯 Java 团队,已有 Spring 全家桶
  → 网关逻辑与业务逻辑高度耦合
  → 流量规模不大(< 5000 RPS)

APISIX vs Envoy / Istio

完全不同的定位,不是直接竞品:

Envoy / Istio:
  定位:服务网格 Sidecar 代理
  部署:每个 Pod 注入一个 Sidecar
  优势:服务间流量(东西向流量)管理
  劣势:资源消耗大,运维复杂度极高

APISIX:
  定位:API 网关(南北向流量)
  部署:独立部署,集中式
  优势:外部流量入口管理,插件丰富

最佳实践:两者搭配使用
  外部流量 → APISIX(南北向)
  服务间流量 → Istio/Envoy(东西向)

  Internet → APISIX → K8s Service Mesh(Istio) → 各微服务

APISIX 核心优势深度解析

✅ 优势一:真正的动态配置(毫秒级生效)

技术原理:

  管理员修改路由
       ↓
  写入 etcd(分布式KV)
       ↓
  APISIX 通过 etcd Watch 机制
  监听到变化(<10ms)
       ↓
  在内存中热更新配置
  (完全不经过磁盘,不重启进程)
       ↓
  新请求立即按新规则处理

业务价值:
  ✅ 灰度发布:从 1% → 100% 实时调整,零中断
  ✅ 紧急熔断:发现问题立即下线某个路由,毫秒生效
  ✅ 节假日限流:提前配置,到点自动切换
  ✅ A/B 测试:随时调整流量比例

✅ 优势二:性能卓越(接近原生 Nginx)

为什么 APISIX 比 Kong 快?

同样基于 Nginx + LuaJIT,差别在于:

Kong 的问题:
  每次请求 → 查询 PostgreSQL → 加载插件配置
  数据库查询成为性能瓶颈

APISIX 的设计:
  启动时 → 从 etcd 加载全量配置到共享内存
  请求时 → 直接读内存(纳秒级)
  变更时 → 增量更新内存(不影响处理中的请求)

结果:APISIX 几乎没有配置查询开销
     性能接近裸 Nginx(损耗 < 10%)

✅ 优势三:插件架构极度灵活

插件优先级机制:

请求进来
   ↓
priority=3000: serverless-pre-function(最先执行)
   ↓
priority=2700: ip-restriction
   ↓
priority=2599: jwt-auth
   ↓
priority=1002: limit-conn
   ↓
priority=1001: limit-req
   ↓
priority=1000: limit-count
   ↓
priority=985:  proxy-rewrite
   ↓
priority=10:   http-logger
   ↓
priority=0:    serverless-post-function(最后执行)

插件挂载粒度:
  Global(全局)→ 所有请求
  Service(服务)→ 一类服务
  Route(路由)→ 特定路由
  Consumer(消费者)→ 特定用户

细粒度控制 = 灵活构建复杂策略

✅ 优势四:多语言插件生态

插件开发语言选择:

Lua(原生,性能最高)
  → 与 APISIX 进程内运行
  → 适合:高性能场景

Go(Plugin Runner)
  → 通过 Unix Socket 通信
  → 适合:需要调用复杂库(如 gRPC、数据库SDK)

Java(Plugin Runner)
  → 适合:Java 团队,复用现有 Java 库

Python(Plugin Runner)
  → 适合:AI/ML 相关插件(调用模型推理等)

Node.js(Plugin Runner)
  → 适合:前端团队维护网关插件

意义:
  不需要全团队学 Lua
  各团队用熟悉的语言写插件
  降低门槛,加速开发

✅ 优势五:完善的可观测性

开箱即用的可观测性三件套:

指标(Metrics):
  → prometheus 插件
  → 暴露 500+ 内置指标
  → QPS、延迟、错误率、连接数...

链路追踪(Tracing):
  → SkyWalking / Zipkin / OpenTelemetry
  → 全链路 TraceID 透传
  → 精确定位哪个服务慢

日志(Logging):
  → http-logger / kafka-logger / rocketmq-logger
  → 结构化 JSON 日志
  → 实时推送到日志平台

无需额外开发,插件配置即用

✅ 优势六:负载均衡算法最丰富

APISIX 支持的负载均衡算法:

轮询(Round Robin)
  → 简单平均分配

加权轮询(Weighted Round Robin)
  → 按服务器性能分配权重

一致性哈希(Consistent Hash)
  → 同一用户/IP 固定到同一节点
  → 适合有状态服务

最少连接(Least Connections)
  → 动态选择当前连接最少的节点

EWMA(指数加权移动平均)
  → 根据响应时间动态调整
  → 自动避开慢节点

Chash(带虚拟节点的一致性哈希)
  → 节点变化时最小化请求漂移

主备模式(Primary-Backup)
  → 主节点正常时只用主节点
  → 主节点故障自动切备

Kong、Traefik 等的算法选择远少于 APISIX

✅ 优势七:国内生态最友好

国内特有优势:

服务注册中心支持:
  ✅ Nacos(阿里,国内最流行)
  ✅ ZooKeeper
  ✅ Consul
  ✅ Kubernetes
  ✅ Eureka(Spring Cloud)

(Kong 不支持 Nacos!)

国内云厂商集成:
  ✅ 阿里云 MSE APISIX 托管版
  ✅ 腾讯云 API 网关基于 APISIX
  ✅ 华为云 API 网关集成

社区活跃度:
  ✅ 中文文档完善
  ✅ 国内社区活跃(微信群、论坛)
  ✅ 大量国内落地案例(腾讯、百度、奇虎360等)
  ✅ GitHub Star 13k+,Issue 响应快

Apache 顶级项目:
  ✅ 不依赖单一商业公司
  ✅ 治理透明,社区开放

选型决策树

开始选型
   ↓
流量规模 > 10000 RPS?
   ├── 否 → 任何网关都行,选最熟悉的
   └── 是 ↓
       需要动态配置(灰度/A-B测试)?
       ├── 否 → Nginx 足够
       └── 是 ↓
           团队技术栈?
           ├── 纯 Java/Spring → Spring Cloud Gateway
           ├── K8s自动发现优先 → Traefik
           ├── 需要服务网格 → Envoy/Istio
           └── 通用微服务/需要丰富插件 ↓
               国内部署 / 用 Nacos?
               ├── 是 → 🏆 APISIX(首选)
               └── 否 → APISIX 或 Kong(均可)
                         ↓
                   对成本敏感(不想买企业版)?
                   ├── 是 → 🏆 APISIX(完全开源)
                   └── 否 → Kong 也可以

各场景最佳选型推荐

场景

推荐方案

理由

初创公司/快速验证

Traefik / APISIX

上手快,功能够用

中大型微服务平台

🏆 APISIX

性能强、插件全、动态配置

纯 Java 技术栈

Spring Cloud GW + APISIX

内部用SCG,对外用APISIX

电商大促/高并发

🏆 APISIX

性能最强,限流最灵活

国内 + Nacos 服务发现

🏆 APISIX

唯一原生支持Nacos的主流网关

K8s Ingress Controller

APISIX / Traefik

都支持K8s原生

AI/LLM 流量管理

🏆 APISIX

自定义插件强,流式透传好

需要服务网格

Istio(Envoy) + APISIX

南北向APISIX,东西向Istio

预算有限,功能要全

🏆 APISIX

完全开源,不锁企业版

已有 Kong 迁移成本高

保持 Kong

迁移成本 > 收益


总结:APISIX 为什么是当前最优选

┌─────────────────────────────────────────────────┐
│              APISIX 核心竞争力                    │
│                                                 │
│  性能:接近原生 Nginx,比 Kong 快 65%            │
│  动态:etcd 驱动,毫秒级配置生效                  │
│  插件:80+ 官方插件,多语言自定义                 │
│  开源:Apache 顶级项目,企业级功能完全免费         │
│  生态:国内最友好,Nacos/SkyWalking 原生支持      │
│  云原生:K8s Ingress、服务发现、Helm 完整支持      │
│                                                 │
│  适合你如果:                                    │
│  ✅ 需要高性能 API 网关                          │
│  ✅ 微服务架构,需要动态路由                      │
│  ✅ 需要灰度、限流、鉴权等完整能力                │
│  ✅ 国内部署,用 Nacos/SkyWalking                │
│  ✅ 不想被商业版绑架                             │
│  ✅ 构建 LLM/AI 服务平台                         │
└─────────────────────────────────────────────────┘

一句话:如果你只能选一个 API 网关,在国内微服务/云原生场景下,APISIX 是目前综合能力最强、最值得投入的选择 —— 性能不输 Nginx,功能碾压 Kong,完全开源不收费,国内生态最完善。