Apache APISIX 是一个 高性能、可扩展、开源的 API 网关,主要用于处理 API 请求的流量管理、安全控制、负载均衡、动态路由、身份认证 等。它是 Apache 基金会的顶级项目,以其 云原生架构、动态配置、插件化机制 等特点,在微服务、边缘计算、Kubernetes 等场景中广泛应用。
APISIX 主要由以下几个组件组成:
组件名 | 说明 |
---|---|
APISIX Core (Data Plane) | 用于处理实际的 API 请求,基于 NGINX 和 OpenResty 构建,性能非常高。 |
etcd (Control Plane) | 用于配置中心,所有路由、插件、上游等信息都保存在 etcd 中。 |
APISIX Dashboard(可选) | 可视化界面,用于管理路由、上游、服务、插件等资源。 |
APISIX CLI(可选) | 用于本地调试和配置热更新。 |
支持按请求路径、Host、方法、Header、Query 参数等进行路由匹配。
路由规则支持热更新,无需重启服务。
插件可用于实现认证、限流、日志记录、转码、mock 等功能。
插件支持热加载、热卸载,内置插件 70+,如:
limit-req
: 请求限流
key-auth
: 密钥认证
jwt-auth
: JWT 鉴权
prometheus
: 指标监控
grpc-transcode
: gRPC 转 HTTP
支持 Round Robin、最小连接数、Consistent Hash 等负载均衡策略。
支持主动健康检查和被动健康检查。
单核可处理 18000+ QPS(官方 benchmark)。
通过 Lua 脚本和插件轻松扩展新功能。
支持 SSL、mTLS、IP 白名单、WAF 插件。
支持多种身份验证方式。
资源 | 说明 |
---|---|
Route | 路由规则,定义请求匹配方式和要使用的插件、上游服务等。 |
Service | 通常对应一个微服务,可以复用在多个 Route 中。 |
Upstream | 后端服务地址列表及负载均衡策略。 |
Plugin Config | 插件组合配置,用于解耦插件与 Route/Service 的绑定。 |
Consumer | 定义调用者身份和权限,用于身份验证(如 JWT、Key Auth)。 |
单机部署:适合本地测试或开发。
Docker / Docker Compose:推荐使用官方提供的 Compose 配置快速启动。
Kubernetes (APISIX Ingress Controller):作为 Kubernetes 的 Ingress Controller 使用,完美适配云原生架构。
多节点部署:实现多节点高可用,Data Plane + Control Plane 分离。
场景 | 描述 |
---|---|
API 网关 | 对外统一出口,统一认证、限流、监控、路由。 |
微服务通信 | 服务间访问通过 APISIX 控制流量和权限。 |
混合云或多云接入 | 跨区域、跨平台的 API 聚合与控制。 |
Kubernetes Ingress | 作为 Ingress Controller 接管流量入口。 |
工具 | 描述 |
---|---|
APISIX Dashboard | 可视化管理界面(支持用户认证、权限控制) |
APISIX Ingress Controller | Kubernetes Ingress 控制器实现 |
APISIX CLI | 本地开发、调试辅助工具 |
APISIX Go Plugin Runner | 用 Go 编写插件的能力 |
APISIX Python Plugin Runner | 支持 Python 插件开发 |
特性 | APISIX | Kong | Nginx |
---|---|---|---|
动态配置 | ✅(热更新) | 部分 | ❌ |
插件热加载 | ✅ | ❌ | ❌ |
性能 | 高 | 中 | 中 |
云原生支持 | 强(Ingress + CRD) | 一般 | 弱 |
社区活跃度 | 高(Apache 顶级项目) | 高 | 高 |
Apache APISIX 是现代云原生环境下的一款强大、灵活、性能卓越的 API 网关,适合从轻量级单体到大规模分布式微服务架构的各种使用场景。