我们用云原生网关省了38%的流量处理成本,却差点在黑五搞崩欧洲生鲜配送链路
上周黑五的大促复盘会刚结束,我们3个人的欧洲生鲜配送后端团队后背还在发凉:预售日当天17%的冷链预约请求直接返回429,用户投诉量涨了两倍,差点搞砸准备了三个月的年度大促。
问题出在用了两年的传统API网关:我们给地址解析、冷链预约两个核心接口设了统一限流阈值,黑五当天地址解析请求先爆了,直接占满了网关配额,后面的预约请求根本进不来。之前总觉得换网关是大团队才需要折腾的事,这次踩了坑才知道,云原生网关对小团队来说可能是性价比更高的选择。
云原生网关到底是什么?
一句话说清:它是跑在K8s集群里的流量入口,不用你单独租服务器部署,你只用管路由规则、限流策略,剩下的资源弹性、运维升级全由云厂商搞定,我们现在用的版本单实例每秒能扛2万次请求,不用提前做容量规划。
换完之后我们拿到的三个实际收益
预售日故障之后我们花了3天切到云原生网关,黑五正赛当天没再出一次限流误杀的问题,还有三个超出预期的好处:
- 成本直接降了:之前我们单独租了两台4核8G的服务器跑传统网关,再加上1个运维每月花8小时做版本升级,算下来每月成本1200欧元,现在云原生网关按调用量付费,每月只花740欧元,直接省了38%的流量处理成本
- 限流策略终于能用明白了:之前的网关只能按全局接口设限流阈值,现在我们能给不同业务场景设独立规则——比如地址解析接口每秒最多放5000次请求,就算它被刷爆,也不会影响后面的支付、预约链路
- HTTPS握手耗时直接少了一半:之前我们的SSL证书存在自己的网关服务器里,欧洲不同区域的用户握手延迟能到200ms,现在云厂商把证书缓存到了边缘节点,多数请求握手延迟能压到80ms以内
别着急上车,这两个坑我们已经踩过了

不是说云原生网关全是好处,我们切的过程中也踩了两个差点返工的坑:
第一个是冷启动延迟的问题。刚切完第一天我们做压测,发现连续10分钟没请求之后,第一波请求的响应时间突然涨到300ms以上,后来才知道云厂商的弹性实例是按需启动的,需要给核心接口设最小实例预留,不然闲时突然来流量很容易超时。
第二个是自定义插件的限制。我们之前自己写了个请求验签的插件跑在传统网关上,切的时候才发现我们用的云原生网关只支持WebAssembly格式的插件,花了两天时间改代码才适配完,要是你有很多自定义逻辑,最好先看清楚厂商的插件支持范围。
到底要不要换?直接看这两个判断标准
你该换的情况:

- 团队小于5个后端,没有专门的运维人员,不想把时间花在网关服务器的维护、升级上
- 流量波动大,比如大促的时候流量是平时的3-10倍,不想提前租一堆服务器平时闲置浪费钱
你不该换的情况:
- 合规要求特别严,所有流量必须经过你自己可控的服务器,不能走云厂商的公共节点
- 你的网关有非常多自定义的特殊逻辑,市面上的云原生网关都不支持,自己改的成本比自己维护网关还高
给第一次上手的人的三个小建议
- 不用全量切,先把10%的流量导到云原生网关跑一周,监控没异常再慢慢切,我们最开始就是先切了地址解析接口,没问题才把全量流量迁过去
- 核心接口一定要设最小实例数,别省那点钱,我们现在给冷链预约、支付两个核心接口各留了2个常驻实例,再也没出现过冷启动超时的问题
- 不用买最高配的版本,大部分中小企业的流量规模,基础版的功能就完全够用,我们现在用的基础版,2万QPS以内都不用加钱
最后回答团队内部问得最多的一个问题:会不会被云厂商绑定?
我们的判断是:对小于10个人的后端团队来说,被云厂商绑定带来的效率提升,远大于自己从头搭所有组件的成本。真到了哪天要换云厂商的规模,你也有足够的精力去做迁移了,现在别纠结这个。
有用吗?