v2.9.0-go
·
5 commits
to go-rewrite
since this release
v2.9.0-go
新增风控自动更换代理及最少绑定账号分配策略。上游客户端版本保持 3.14.4,
不修改账号数据库结构或管理 API 字段;前端已重建并随二进制内嵌。
风控自动更换代理
- 消息请求命中现有
HTTP 405 + 风控文案判定后,为被拦截账号自动更换代理。 - 优先选择启用的空闲代理;无空闲代理时选择绑定账号数最少的其他代理。
- 排除原代理 ID 和相同 URL,没有替代代理时保留原绑定,不回退直连。
- 同步请求与异步任务共用处理逻辑;原本直连或使用手工代理的账号也可改派到命名代理。
- 保留原有风控冷却、连续命中升级失效、请求级判定与重放防护;换代理不立即重试原账号。
- 不删除原代理,也不改变原代理上其他账号的绑定。
- 比对本次请求快照与当前绑定,避免迟到响应重复换线或覆盖管理员的改派。
新账号最少绑定分配
- 普通新增、批量新增、导入、CLI 新号和后台自动登录预选采用统一策略:
空闲优先 → 绑定账号最少 → 无启用代理才直连。持久化失败仍按原接口回报直连兜底。 - 同负载按代理列表顺序选择,批量分配逐个更新绑定数,避免集中到单条代理。
- 绑定统计包括停用、冷却、失效和归档账号,手工 URL 不占用命名代理。
- 新增时显式选择代理、直连或手工 URL 的行为不变;重复入池不修改旧账号的代理。
- 后台提示区分“无空闲但可共享”和“无可用代理”,并修正归档账号绑定未计入空闲数的问题。
验证与升级
- 本地 Go 全量测试最终复跑通过;
go vet ./...、go build ./...通过。 - 并发分配、旧快照保护及同步/异步换线出站回归连续 20 轮通过。
- 4 个前端测试文件、共 12 项测试及生产构建通过。
- 补充事务失败整批回滚、持久化、无替代代理、请求级风控及新增入口回归。
- 发布标签前执行 GitHub CI,包括 Linux 全量竞态检测、SDK 兼容、前端产物一致性和容器构建。
- 替换程序或镜像并重启即可,无需数据库迁移;自动换代理默认启用。
- 五平台二进制:Linux amd64/arm64、macOS amd64/arm64、Windows amd64。
- 多架构镜像:
ghcr.io/fujunchao/zcode2api-plus:2.9.0-go和latest。