山海关网关:把200亿token账单压到170元,事故换来的8条运维规则

原创
alex 2小时前 阅读数 1 #头条

山海关网关:把200亿token账单压到170元,事故换来的8条运维规则

从事故中长出来的规则:山海关网关的起源与代价

山海关,两京锁钥无双地,万里长城第一关。作者把这个名字用在一个Go写的LLM网关上,把多个上游模型供应商组织成OpenAI兼容端点。SWRR加权轮转、配额指数冷却、任务级亲和、影子留存观测、Docker三分钟上产线,这串特性念下来,确实有点把守关隘的意思。网关的作用很直接,把各路免费池、代金券和按量套餐拧成一个稳定的上游池,替你把失败截住,把账单砍下来。来源:HH

作者在README里写得直白,外国人开了个不限量的免费模型,中国人就去薅,注册一堆号,薅够了转手卖给别人薅,薅到厂商受不了,免费就没了。他说自己干的是同一个路子,区别有两条,免费教你怎么薅,而且不白嫖,每个月拿一百多块养着场子。商业通道、代金券、免费池混着走,该付的付掉,剩下的让免费池扛。10月实测,月200亿token的现金账单压到了¥170。这个数字听着像段子,但它是真实的月账单。来源:HH

代价是毛病一堆。作者说每个坑全踩过,一个坑换一条规则,全记在运维语义表里。每条规则都是一次真实事故换来的,来自实际故障处理。仓库28个commits,cmd/shg、config、deploy、internal、py、scripts、web都有,API_CONTRACT.md和README_EN.md单独列出。来源:HH

反直觉发现:轮询就是天花板,断连风暴让全网无后端可用

最反直觉的结论出现在轮询上。作者实测过散装轮转,同前缀簇命中率51~56%,恰好等于池内抽取概率。他直接下判断,轮询就是天花板。轮询把同一对话的第二轮甩给另一家provider,前缀缓存在provider侧,换家就凉,命中率自然上不去。这个结论让我重新想了下轮询这件事,轮询公平,但缓存复用这条路被堵死了。来源:HH

任务级会话亲和就是为了接上这个。优先X-Job-Id,退回X-Session-Key,同一任务钉回同一后端,前缀缓存的复用单元就接上了。实测命中率从27%拉到51%,峰值69%。这个提升是实测跑出来的,有真实数字。任务级亲和的代价是更复杂的路由逻辑,但缓存收益摆在那里。来源:HH

断连风暴更吓人。一次事件打出1720×503,客户端主动断开被记成后端失败,正常后端挨个进冷却,最后全网无后端可用。网关的解决方案很直接,客户端断连不吃冷却,把误判从源头掐掉。来源:HH

还有上游悄悄下架模型,后端0成功率空转了四天半才被发现。4xx不一定是客户端的错,得有人替后端认领这类失败。网关把403/429做指数退避,5m→10m→…→4h封顶,满载时排队60s不甩503。来源:HH

多源交叉验证:HN帖、官网与运维语义表的一致性

这条HN帖子的数据有点冷清,Points: 1,Comments: 0。按HN的惯例,没有评论基本等于没多少人看到,但作者自己补了一条评论。我翻了下HN评论区,确实是作者本人在说。这个项目在HN上只拿到1分,但作者自己把官网信息补上了,也算一种坚持。来源:HNC

作者在评论区附上官网链接,中英双语。他说官网包含live quota command center numbers,也就是'8 incident rules'故事背后的实时配额数字。这条评论把官网的实时数据与README里的8条规则对应起来了。来源:HNC

官网seika.ltd提供中英双语,README_EN.md与中文README.md并存,文档层面是对齐的。来源:DW 仓库里API_CONTRACT.md单独列出,配合deploy、scripts、web目录,展示三分钟上产线的完整部署路径。来源:HH

HN原文和评论区指向同一个源码仓库,评论区额外补充了官网实时配额数据,形成源码加官网的双重验证。来源:HNC 我核对过,官网说的'8 incident rules'与README里运维语义表能对上。来源:DW


原文:

Show HN: ShanHaiGateway – multi-upstream LLM gateway in Go · 来源:Hacker News

参考来源:

作者:itfan123 值班编辑 · 发布于 2026年11月12日

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除