新闻详情

新闻详情

首页 / 资讯中心 / 详情

【优质中转站,最难的其实不是转发,而是失败时候的处理过程】

发布时间:2026/9/6 6:14:12来源:尧图网络
【优质中转站,最难的其实不是转发,而是失败时候的处理过程】
优质中转站最难的其实不是转发而是失败时候的处理过程上一篇主要聊了路由这几天又继续把后端重构了一下其实刚开始做的时候我也觉得中转站后端没那么复杂一般就是针对请求找一个支持对应模型的渠道转发过去拿到结果扣费结束。关键点在于我们需要考虑一下这几种情况间歇性的429如何处理首字延迟高如何处理上游已经吐了几十个 token然后连接重置的情况咋办请求失败以后应该重试同级渠道还是降级重试同一个渠道几十个 Key其中只有一个 Key 出问题到底该封 Key 还是封整个渠道。这个项目也是基于 New API 后端继续改的。New API 功能很多协议兼容也做得很好但是将他应用于高并发的生产环境后端的逻辑还是需要修改。第一个问题是 重试机制重试机制和优先级耦合太严重了New API 目前的逻辑本质上是retry0走第一个优先级的渠道retry1走第二个优先级渠道retry2走第三个优先级渠道自动分组在这个基础上继续套一层组间的索引。所以重试这个机制同时承担了1. 当前请求重试了多少次2.当前应该落到第几档位的优先级渠道3.auto 分组当前走到哪个组 4.什么时候该跨分组调用渠道。这样并不适用于生产环境因为如何有多个渠道都是有相同的优先级如果第一个渠道突然链接重置以后肯定要继续重试下一个相同优先级的第二个渠道而不是发生了一次重试直接就到下一个优先级的渠道这样显然不合理。所以我的项目每次请求会单独维护一个对应的状态{attempted channelslast errorremaining retry budgetdeadlinestream committedcurrent health snapshot}第一次失败之后Router 重新对剩余候选池重新做一次决策。而且不同错误的重试策略不应该相同429、连接超时、连接重置…本来就不应该使用同一种方式处理。第二个问题是健康状态不能只有 enabled / disabledNew API 自己有自动测试、自动禁用和自动恢复的机制但是整体还是比较简单。某个错误命中了自动禁用规则就有启用变为自动禁用后面如果在管理员指定的时间间隔测试成功再由自动禁用变为启用。这种二极管的方式显然不适合于生产环境针对单个渠道他的状态很有可能是完全健康到开始少量的429再到TTFB升高再到超时再到恢复这个周期循环往复如果在这个周期的其中一个环境就禁用渠道未免太过可惜。我现在对渠道做的是加入第三个中间状态CLOSEDOPENHALF_OPEN这样不是看到一个错误就改变全局状态,然后统计2xx4295xxtimeoutconnection resetupstream disconnectTTFBtotal latencyactive requestsrate limit remaining/reset并且错误不是简单算成一个 error_count。因为 429 和 401不是同一种错误。渠道禁用以后是过指定时间先进 HALF_OPEN状态连续成功以后再按照指定的时间间隔恢复。这样做以后渠道恢复的时候不会突然被一波流量重新搞到自动禁用。第三个问题是多节点部署之后需要考虑状态传播我做了集群才认识到New API 的渠道的缓存本身是进程内的映射。按照指定的时间周期性的从数据库全量同步默认就是几十秒这个量级。好像是20秒我记得。单节点完全没有问题因为对应的就一个缓存多节点就麻烦很多了。如果请求在第一个节点某个渠道发现 401把它自动禁用了。但是 第二个节点第三个节点并不会瞬间知道这件事情它们还是要等下一轮的同步我猜测newapi的作者应该是先照着单节点的模式去做的后续考虑多节点同步的问题的时候有点难以处理了github目前还有相关的open issue等待解决。这段时间坏渠道仍然可能不断收到请求。而且自动恢复走的是另外一条链路不是所有情况下都会马上把整个 候选的缓存重构一遍。我现在更多考虑2种状态配置状态属于渠道属于什么组支持什么模型成本统计管理员优先级静态写死的策略运行时状态属于healthcircuitrate limitEWMAactive requestslast failure当配置发生改变以后通过版本号 事件通知所有节点失效。这样其中一个节点的状态改变其他节点会立刻同步而数据库负责持久化不负责做实时消息的同步这样数据库的压力也会少很多。再聊一下 New API针对这个大热的项目我还是很认可的。尤其是账号、Token、计费、渠道管理、各种协议 adaptor、模型映射、后台这些东西自己从头写一套非常的麻烦而且这套东西除了sub2api做到差不多市面上的开源的代码也没有再这些方面超过这两个项目的了要么就是路由的架构以及逻辑做的很优秀但是少了账号计费渠道管理并发控制和集群部署要么就是像newapi这样做的大而全但是有些功能需要优化。我现在这套还远远谈不上完美不过至少已经不是简单给 New API 换个皮然后挂几个渠道了。改善这些点以后也推荐给大家我的项目现在无论是路由并发控制时的一致性还是集群部署时出现的问题以及上面提到的状态的加入以及修改以及重试的机制整体已经非常完善了我们也是对接了多家企业总共300的用户使用这个平台现在折扣是分档的用户可以根据自己的需求选择不同的档位现在新用户注册即送测试额度欢迎大家试用。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

DApp定制开发|助力企业布局Web3生态 2026/9/6 8:08:26

DApp定制开发|助力企业布局Web3生态

DApp定制开发|助力企业布局Web3生态 随着Web3技术不断发展,越来越多企业开始探索去中心化应用的商业价值。DApp作为连接区块链技术与实际业务的重要应用形式,正在金融、游戏、数字资产、社交等多个领域发挥重要作用。 我们专注于DApp定制开发…

阅读更多 →
AIGC检测用维普在哪里做?提交论文后怎样找到对应报告入口? 2026/9/6 8:08:26

AIGC检测用维普在哪里做?提交论文后怎样找到对应报告入口?

AIGC检测用维普在哪里做?提交论文后怎样找到对应报告入口? 学院群里发了通知,说今年毕业论文除了查重,还要过一遍维普的AIGC检测。你打开浏览器搜维普,出来一长串页面,有的写着论文检测,有的写…

阅读更多 →
本地部署与云端数字人智能体:长期使用怎么判断 2026/9/6 8:08:26

本地部署与云端数字人智能体:长期使用怎么判断

“数字人智能体可以理解为面向视频生产任务的自动化工具。它通常把文案理解、语音合成、口型驱动、视频合成甚至多平台发布等环节串起来,用户不需要逐帧操作,只要提供素材或参考内容,智能体就能按设定流程完成出片。当前主要有两种部署形态&a…

阅读更多 →
Java 大厂面试实录:Spring Boot + Kafka + Redis + OpenFeign 在电商秒杀场景中的 3 轮高频追问 2026/9/6 8:08:26

Java 大厂面试实录:Spring Boot + Kafka + Redis + OpenFeign 在电商秒杀场景中的 3 轮高频追问

Java 大厂面试实录:Spring Boot Kafka Redis OpenFeign 在电商秒杀场景中的 3 轮高频追问场景:某互联网大厂 Java 面试,业务方向为电商秒杀、订单履约与风控。第一轮:基础与入口设计面试官:先聊聊秒杀活动的接口设计…

阅读更多 →
商务背包怎么定制才能兼顾质感和成本 2026/9/6 8:08:26

商务背包怎么定制才能兼顾质感和成本

第一部分:痛点深度剖析商务背包最近接连遇到好几批企业客户,在商务背包定制上踩了同样的坑:为了提升包包档次,花大价钱升级高端面料,最后预算严重超支,但是背包整体质感的提升却十分有限。 商务包的高级感&…

阅读更多 →
RK3588边缘AI视觉流水线:共享内存与DMA-BUF零拷贝跨进程通信实践 2026/9/6 8:05:26

RK3588边缘AI视觉流水线:共享内存与DMA-BUF零拷贝跨进程通信实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞