API网关Apisix介绍

Apache APISIX 是一个 高性能、可扩展、开源的 API 网关,主要用于处理 API 请求的流量管理、安全控制、负载均衡、动态路由、身份认证 等。它是 Apache 基金会的顶级项目,以其 云原生架构、动态配置、插件化机制 等特点,在微服务、边缘计算、Kubernetes 等场景中广泛应用。


一、APISIX 的核心架构

APISIX 主要由以下几个组件组成:

组件名 说明
APISIX Core (Data Plane) 用于处理实际的 API 请求,基于 NGINX 和 OpenResty 构建,性能非常高。
etcd (Control Plane) 用于配置中心,所有路由、插件、上游等信息都保存在 etcd 中。
APISIX Dashboard(可选) 可视化界面,用于管理路由、上游、服务、插件等资源。
APISIX CLI(可选) 用于本地调试和配置热更新。

二、APISIX 的主要功能

1. 动态路由

  • 支持按请求路径、Host、方法、Header、Query 参数等进行路由匹配。

  • 路由规则支持热更新,无需重启服务。

2. 插件化架构

  • 插件可用于实现认证、限流、日志记录、转码、mock 等功能。

  • 插件支持热加载、热卸载,内置插件 70+,如:

    • limit-req: 请求限流

    • key-auth: 密钥认证

    • jwt-auth: JWT 鉴权

    • prometheus: 指标监控

    • grpc-transcode: gRPC 转 HTTP

3. 负载均衡

  • 支持 Round Robin、最小连接数、Consistent Hash 等负载均衡策略。

  • 支持主动健康检查和被动健康检查。

4. 服务发现

  • 内置支持 Nacos、Eureka、Consul、DNS、Kubernetes 等服务注册中心。

5. 高性能和可扩展性

  • 单核可处理 18000+ QPS(官方 benchmark)。

  • 通过 Lua 脚本和插件轻松扩展新功能。

6. 安全特性

  • 支持 SSL、mTLS、IP 白名单、WAF 插件。

  • 支持多种身份验证方式。


三、APISIX 的常用资源对象

资源 说明
Route 路由规则,定义请求匹配方式和要使用的插件、上游服务等。
Service 通常对应一个微服务,可以复用在多个 Route 中。
Upstream 后端服务地址列表及负载均衡策略。
Plugin Config 插件组合配置,用于解耦插件与 Route/Service 的绑定。
Consumer 定义调用者身份和权限,用于身份验证(如 JWT、Key Auth)。

四、部署方式

  1. 单机部署:适合本地测试或开发。

  2. Docker / Docker Compose:推荐使用官方提供的 Compose 配置快速启动。

  3. Kubernetes (APISIX Ingress Controller):作为 Kubernetes 的 Ingress Controller 使用,完美适配云原生架构。

  4. 多节点部署:实现多节点高可用,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 插件开发

七、对比优势(与 Kong、Nginx 等)

特性 APISIX Kong Nginx
动态配置 ✅(热更新) 部分
插件热加载
性能
云原生支持 强(Ingress + CRD) 一般
社区活跃度 高(Apache 顶级项目)

总结

Apache APISIX 是现代云原生环境下的一款强大、灵活、性能卓越的 API 网关,适合从轻量级单体到大规模分布式微服务架构的各种使用场景。


你可能感兴趣的:(架构师修养,网络)