背景介绍
金山办公是目前国内最大的办公软件厂商,旗下产品涉及 WPS、金山文档、稻壳等。在业务层面上由数千个业务以容器化部署在内部云原生平台,目前 Apache APISIX 在金山办公主要负责为中台部门业务(百万级 QPS )提供相关网关服务。
金山办公的网关演进
在 1.0 阶段时,我们对于 API Gateway 的特性没有什么强需求,只是想解决运维问题,所以基于 OpenResty 与 Lua 进行了自研,实现了动态 Upstream、黑名单、waf 等功能。
虽然自研成功,但在功能上却遗留了一些问题,比如:
-
动态化只做到到 Upstream 维度
-
需要 Reload 才能带出新域名
-
底层设计简单,功能扩展能力不强
后续我们对 API Gateway 功能有了强需求后,开始去调研相关的开源网关产品。
为什么选择了 Apache APISIX?
实际上 2019 年年底开始调研网络产品时,Kong 算是一个比较流行的选择。
但后续经过测试发现,Kong 的性能不太能满足我们的需求,同时我们认为 Kong 的架构不是很优秀:因为其配置中心选用 PostgreSQL,所以 Kong 只能利用非事件驱动去更新路由,依赖每个节点去刷新路由。
进一步调研时,我们发现了 Apache APISIX。首先 Apache APISIX 的性能比 Kong 强,在 Apache APISIX 的 GitHub Readme 中有个非常详细的对比图,列出了两者的性能测试差距,这与我们自己测试下来的数据基本一致。
更多关于 Apache APISIX 与 Kong 的性能测试数据参考,可以查阅:https://gist.github.com/membphis/137db97a4bf64d3653aa42f3e016bd01
在架构