中间件体系(Middleware Platform)

目标:为业务系统提供统一、稳定、高可用、可治理的基础运行能力

P0(运行基础)
├── 网关(Kong / APISIX)
├── 配置中心(Nacos)
├── RPC 平台(Dubbo)
├── 数据存储(MySQL / PostgreSQL / Mongo)

P1(解耦与性能)
├── MQ(Kafka / RabbitMQ)
├── 缓存平台(Redis / Memcached)
├── 搜索(Elasticsearch)
├── 文件存储(MinIO)

P2(治理与稳定)
├── 缓存失效监控 & 一致性
├── 任务调度(Airflow / XXLJob)
├── 中间件监控与告警

P3(平台化)
├── 中间件统一管控台
├── 多租户 / 资源隔离
├── 成本 & 容量管理

中间件体系的本质不是“技术选型”,而是“运行能力抽象”:

网关

下面我将以企业级平台视角,对 API 网关(Kong / Apache APISIX)做一次全面、可落地的系统性介绍。内容会覆盖定位、核心能力、架构机制、Kong vs APISIX 对比、平台化设计、典型场景、治理模型,而不是停留在工具层。


一、什么是 API 网关(Gateway)

API 网关是所有 南北向流量(Client → 服务)统一入口层,承担:

流量接入、协议适配、安全控制、流量治理、可观测性

在现代架构中,网关已经从:

“一个反向代理” 升级为 “流量治理与安全控制中枢”


二、网关在整体技术架构中的位置

Client(Web / App / IoT / Partner)
│
├── CDN / WAF(可选)
│
├── API Gateway(Kong / APISIX)
│   ├── 鉴权
│   ├── 限流
│   ├── 路由
│   ├── 协议转换
│   ├── 灰度
│
├── Service Mesh / RPC / HTTP
│
└── 后端微服务

网关解决 “进来之前的事”,Mesh 解决 “服务之间的事”


三、网关的核心职责拆解

1️⃣ 流量接入与路由(Traffic Routing)

能力

  • Path / Host / Header 路由
  • 动态路由
  • 重写(URI / Header)
  • 多后端负载均衡

企业价值

  • 屏蔽后端服务变化
  • 对外提供稳定 API Contract

2️⃣ 认证与鉴权(AuthN / AuthZ)

常见方式

  • API Key
  • JWT
  • OAuth2 / OIDC
  • HMAC
  • mTLS

企业级能力

  • 与 IAM / SSO 打通
  • 应用级 / 租户级鉴权
  • Token 透传与转换
  • 细粒度 API 权限控制

3️⃣ 流量治理(Traffic Governance)

核心能力

  • 限流(QPS / 并发)
  • 熔断
  • 超时
  • 重试
  • 降级

典型场景

  • 防止流量突刺
  • 保护核心系统
  • 黑产 / 爬虫防护

4️⃣ 灰度发布 & 流量调度

能力

  • 按比例灰度
  • 按 Header / 用户标签
  • Canary / A/B Test

企业价值

  • 风险可控上线
  • 快速回滚

5️⃣ 协议与数据转换

支持

  • HTTP ↔ HTTPS
  • REST ↔ gRPC
  • WebSocket
  • GraphQL(部分支持)

6️⃣ 可观测性(Observability)

指标

  • QPS / RT
  • 错误率
  • 限流命中率

日志

  • Access Log
  • 安全审计日志

Tracing

  • TraceID 注入
  • 调用链透传

四、Kong 与 APISIX 的核心架构差异

维度 Kong APISIX
内核 Nginx + Lua OpenResty + LuaJIT
配置中心 PostgreSQL / DB-less Etcd(强一致)
动态配置 较慢(依赖 DB) 毫秒级热更新
性能 更高(事件驱动)
插件体系 成熟、商业化强 开源活跃、可定制
多协议 HTTP / gRPC HTTP / gRPC / TCP / MQTT
云原生 良好 原生云原生友好

结论一句话

  • Kong:成熟稳健、生态与商业支持强
  • APISIX:性能优先、动态性强、平台化更友好

五、插件机制(网关的“灵魂”)

插件执行链(简化)

Client Request
│
├── Auth Plugin
├── Rate Limit Plugin
├── WAF Plugin
├── Rewrite Plugin
│
└── Upstream

插件类型

  • 安全类:Auth、IP 黑白名单
  • 治理类:限流、熔断
  • 流量类:灰度、镜像
  • 可观测类:日志、Tracing

网关平台能力 ≈ 插件治理能力


六、企业级网关平台应该“多做的事”

1️⃣ 网关 ≠ 控制台

企业一定要在 Kong / APISIX 之上,构建 网关平台

网关平台
├── API 管理
│   ├── 创建 / 发布 / 下线
│   ├── 版本管理
│
├── 应用 & 租户管理
│
├── 权限模型(RBAC)
│
├── 策略中心
│   ├── 限流
│   ├── 灰度
│   ├── 安全
│
├── 监控 & 告警
└── 审计

2️⃣ API 生命周期管理(非常关键)

阶段 能力
设计 API 规范 / Mock
发布 灰度 / 校验
运行 监控 / 限流
退役 下线通知

3️⃣ 多租户与隔离

  • Namespace 隔离
  • Rate Limit 隔离
  • 独立证书 / Token

七、典型企业使用场景

场景 1:对外 OpenAPI

  • 应用级 Token
  • 强限流
  • 审计日志

场景 2:内部 BFF

  • 用户态鉴权
  • 精细化路由
  • 灰度发布

场景 3:安全防护

  • 防刷
  • IP 信誉
  • 行为分析(联动风控)

八、与 Service Mesh 的边界划分

能力 网关 Mesh
客户端接入
API 管理
服务间流量
mTLS 部分
灰度 简单 复杂

网关管“入口”,Mesh 管“内部”。


九、落地建议(非常实用)

选型建议

  • 高并发 + 动态规则多 → APISIX
  • 生态 / 商业支持 → Kong

建设顺序

  1. 先“入口统一”
  2. 再“安全 & 限流”
  3. 然后“灰度 & 治理”
  4. 最后“API 资产化”