Kong、APISIX 和 Spring Cloud Gateway 是当前微服务架构中最主流的三种 API 网关方案。它们的核心差异在于 APISIX 基于 etcd 的 Watch 机制实现毫秒级动态配置同步,Kong 传统架构依赖数据库且存在配置延迟,而 Spring Cloud Gateway 则深度绑定 Java/Spring 生态。
一、核心原理与底层算法
路由匹配算法
APISIX 采用基数树(Radix Tree)进行路由匹配。libradixtree 是基于 rax 的自适应基数树实现,将路由规则编译进树结构,请求到达时以极快速度完成 URI 匹配。基数树相比普通字典树的关键优势在于:当子节点只有一个时,会将连续的单链路径合并为一条边,从而显著压缩树的高度、减少内存占用并提升查找性能。匹配优先级为完全匹配 > 深度前缀匹配。
Kong 采用不同的匹配方式。在路由数量较多时,Kong 的匹配性能下降明显,APISIX 在路由数量达到 5000 条时,QPS 通常比 Kong 高出 30% 至 50%,延迟低约 20%。
Spring Cloud Gateway 基于 Spring WebFlux 的 HandlerMapping 基础设施进行路由匹配,通过 RoutePredicateFactory 组合多个谓词(Predicate)来匹配请求,支持 Path、Header、Method、Q