侧边栏壁纸
  • 累计撰写 7 篇文章
  • 累计创建 0 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

Apache APISIX:云原生时代的 API 网关利器

break
2026-04-07 / 0 评论 / 0 点赞 / 9 阅读 / 1,808 字

Apache APISIX:云原生时代的 API 网关利器

APISIX Logo

APISIX 是一个动态、实时、高性能的 API 网关,提供负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。


📋 目录

  1. 什么是 APISIX
  2. 核心特性
  3. 架构设计
  4. 与竞品对比
  5. 快速入门
  6. 实际应用场景
  7. 总结

什么是 APISIX

Apache APISIX 是由 Apache 软件基金会孵化的开源项目,于 2020 年成为 Apache 顶级项目(Top-Level Project)。它是一个云原生、动态、实时、高性能的 API 网关,基于 OpenResty + etcd 构建。

诞生的背景

随着微服务架构的普及,API 网关的重要性日益凸显:

  • 单体应用拆分为成百上千个微服务
  • 服务间通信复杂度指数级增长
  • 流量管理、安全防护、可观测性需求迫切

传统的 Nginx 虽然性能优秀,但配置变更需要 reload,无法满足动态、实时的流量管理需求。APISIX 正是为解决这一痛点而生。


核心特性

🚀 1. 动态配置 - 无需重启

APISIX 的最大亮点是完全动态

  • 添加/修改路由、上游、插件无需重启服务
  • 配置变更通过 etcd 实时推送,毫秒级生效
  • 支持多集群配置同步
# 创建一条路由(即时生效)
curl http://127.0.0.1:9180/apisix/admin/routes/1 \
  -H 'X-API-KEY: your-api-key' -X PUT -d '
{
  "uri": "/hello",
  "upstream": {
    "type": "roundrobin",
    "nodes": {
      "127.0.0.1:1980": 1
    }
  }
}'

🔌 2. 丰富的插件生态

内置 80+ 开箱即用的插件:

类别代表插件功能
认证鉴权key-auth, jwt-auth, oauth2, ldap-auth身份验证与授权
安全防护cors, ip-restriction, ua-restriction, referer-restriction访问控制
流量控制limit-req, limit-conn, limit-count, request-validation限流限速
可观测性prometheus, skywalking, zipkin, elasticsearch-logger监控追踪
协议转换grpc-transcode, http-logger, dubbo-proxy协议适配
Serverlessserverless-functions, aws-lambda, openwhisk函数计算

⚡ 3. 极致性能

基于 OpenResty(Nginx + LuaJIT)构建,性能表现优异:

  • QPS: 单核可达 18,000+ 请求/秒
  • 延迟: P99 延迟低于 1 毫秒
  • 内存: 路由热加载,内存占用低

官方基准测试:在 AWS 8 核机器上,APISIX 的 QPS 是 Kong 的 2 倍,延迟只有 Kong 的一半。

☸️ 4. 云原生友好

  • 原生 Kubernetes 支持:通过 Ingress Controller 无缝对接 K8s
  • 服务发现:支持 Consul, Nacos, Eureka, DNS 等多种服务注册中心
  • 多语言开发:支持 Go, Java, Python, JavaScript 等语言编写自定义插件

架构设计

APISIX 架构图

控制平面与数据平面分离

组件职责技术栈
控制平面管理配置、API 接口、DashboardGo + etcd
数据平面处理流量、执行插件OpenResty (Nginx + LuaJIT)
配置中心存储配置、实时同步etcd

数据流向

┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│   Client    │────▶│   APISIX    │────▶│  Upstream   │
│             │     │  (OpenResty)│     │  (Backend)  │
└─────────────┘     └──────┬──────┘     └─────────────┘
                           │
                           ▼
                    ┌─────────────┐
                    │    etcd     │
                    │  (配置中心)  │
                    └─────────────┘
  1. 管理员通过 Admin API 或 Dashboard 修改配置
  2. 配置写入 etcd
  3. APISIX 监听 etcd 变更,实时加载新配置
  4. 客户端请求到达 APISIX,匹配路由并执行插件链
  5. 请求被代理到上游服务

与竞品对比

API Gateway Comparison

APISIX vs Kong vs Nginx

特性APISIXKongNginx
动态配置✅ 完全动态⚠️ 部分动态❌ 需 reload
性能⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
插件数量80+50+需自行开发
K8s 集成⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
多语言插件✅ 支持❌ 仅 Lua❌ N/A
开源协议Apache 2.0Apache 2.0BSD
社区活跃度⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐

选择建议

  • 选择 APISIX:需要极致性能、动态配置、丰富插件、云原生场景
  • 选择 Kong:需要成熟的商业支持、企业级功能
  • 选择 Nginx:简单反向代理、静态资源服务

快速入门

使用 Docker 一键启动

# 启动 APISIX + etcd + Dashboard
git clone https://github.com/apache/apisix-docker.git
cd apisix-docker/example
docker-compose -p docker-apisix up -d

配置第一条路由

# 1. 创建上游服务
curl http://127.0.0.1:9180/apisix/admin/upstreams/1 \
  -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
  "type": "roundrobin",
  "nodes": {
    "httpbin.org:80": 1
  }
}'

# 2. 创建路由规则
curl http://127.0.0.1:9180/apisix/admin/routes/1 \
  -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
  "uri": "/get",
  "upstream_id": "1"
}'

# 3. 测试访问
curl http://127.0.0.1:9080/get

启用限流插件

# 为路由添加限流插件(每分钟 100 请求)
curl http://127.0.0.1:9180/apisix/admin/routes/1 \
  -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
  "uri": "/get",
  "upstream_id": "1",
  "plugins": {
    "limit-count": {
      "count": 100,
      "time_window": 60,
      "rejected_code": 429
    }
  }
}'

实际应用场景

场景一:微服务网关

Microservices Gateway

在 Kubernetes 环境中,APISIX Ingress Controller 可以作为微服务的统一入口:

  • 统一认证鉴权
  • 流量治理(金丝雀发布、蓝绿部署)
  • 服务熔断与降级
  • 灰度发布与 A/B 测试

场景二:API 全生命周期管理

  • 设计:OpenAPI 规范定义
  • 发布:一键发布到多个环境
  • 运营:实时监控、告警、分析
  • 下线:平滑下线,不影响存量请求

场景三:多集群流量管理

# APISIX 支持多集群部署
clusters:
  - name: beijing
    etcd:
      - http://10.0.1.10:2379
  - name: shanghai
    etcd:
      - http://10.0.2.10:2379

总结

Apache APISIX 作为一款云原生、高性能、动态化的 API 网关,凭借以下优势成为越来越多企业的选择:

优势说明
动态实时配置变更毫秒级生效,无需重启
性能卓越基于 OpenResty,单核 18k+ QPS
插件丰富80+ 开箱即用插件,覆盖全场景
生态完善活跃的社区,完善的文档,商业支持可选
云原生深度集成 Kubernetes,支持多语言插件

学习资源


APISIX 不仅是网关,更是云原生时代的流量管理中枢。

如果你正在寻找一款高性能、易扩展、社区活跃的 API 网关,APISIX 绝对值得一试!


本文撰写于 2025 年,基于 APISIX 3.x 版本

0

评论区