独家合作CubenceAI 中转平台立减 10%访问

供应商管理

批量操作

批量操作

批量操作功能让你能够同时对多个供应商执行相同的操作,大幅提升管理效率。当你需要对大量供应商进行统一的配置调整、状态变更或故障恢复时,批量操作比逐个编辑节省大量时间。

批量操作仅对管理员开放。所有批量操作都有 500 个供应商的数量上限,防止误操作影响过多资源。


支持的批量操作

系统支持以下三种批量操作:

操作类型功能说明使用场景
批量更新同时修改多个供应商的字段值统一调整优先级、权重、启用状态等
批量删除同时删除多个供应商清理废弃或测试用的供应商
批量重置熔断器同时重置多个供应商的熔断状态故障恢复后批量恢复服务

进入批量操作模式

启用批量选择

  1. 进入 设置 > 供应商管理 页面
  2. 点击页面顶部的「批量编辑」按钮
  3. 列表进入多选模式,每个供应商卡片左侧显示复选框

选择供应商

进入批量模式后,你可以通过以下方式选择供应商:

单选:点击单个供应商卡片的复选框

全选:点击工具栏的「全选」复选框,选择当前筛选结果中的所有供应商

反选:点击「反选」按钮,选中当前未选中的供应商,取消已选中的供应商

选择供应商时会显示已选数量。如果已选数量超过 500,系统会提示超出限制,需要减少选择数量。

退出批量模式

点击工具栏的「退出」按钮或关闭底部的操作栏,即可退出批量选择模式。


批量更新

批量更新允许你同时修改多个供应商的配置字段。

可更新的字段

字段类型说明
启用状态布尔值启用或禁用供应商
优先级整数数值越小优先级越高
权重整数(1-100)同优先级内的流量分配比例
成本倍数小数成本计算的调整系数
分组标签字符串供应商所属的分组标识

操作步骤

  1. 选择需要更新的供应商(1-500 个)
  2. 点击底部操作栏的「编辑」按钮
  3. 在弹出的对话框中,启用需要修改的字段开关
  4. 设置新的字段值
  5. 点击「下一步」查看变更预览
  6. 确认无误后点击「确认更新」

字段开关机制

批量更新对话框采用字段开关设计,只有启用的字段才会被更新:

☐ 启用状态      [开关按钮]
☑ 优先级        [数值输入: 5]
☐ 权重          [数值输入]
☑ 成本倍数      [数值输入: 1.2]
☐ 分组标签      [文本输入]

上例中,只有「优先级」和「成本倍数」会被更新,其他字段保持原值不变。

如果所有字段开关都未启用,系统会拒绝执行更新并提示「请指定要更新的字段」。

使用示例

场景一:批量禁用维护中的供应商

选择供应商:Provider A, Provider B, Provider C
启用字段:启用状态
设置值:禁用
结果:三个供应商全部禁用,不再参与请求调度

场景二:统一调整供应商优先级

选择供应商:所有生产环境供应商(10 个)
启用字段:优先级
设置值:1
结果:所有生产供应商优先级统一设为 1

场景三:标记供应商分组

选择供应商:所有测试环境供应商(5 个)
启用字段:分组标签
设置值:testing
结果:五个供应商都标记为 testing 分组

批量删除

批量删除用于同时移除多个不再需要的供应商。

删除特性

  • 软删除:批量删除使用软删除机制,设置 deleted_at 时间戳而非物理删除
  • 数据保留:历史请求日志和统计数据继续保留,便于审计
  • 状态清理:自动清理被删除供应商的熔断器状态和配置缓存

操作步骤

  1. 选择需要删除的供应商(1-500 个)
  2. 点击底部操作栏的「删除」按钮
  3. 在确认对话框中查看即将删除的供应商列表
  4. 输入确认提示中的文字进行二次确认
  5. 点击「确认删除」执行操作

批量删除操作不可逆。虽然数据被软删除保留,但供应商配置无法通过界面恢复。请谨慎操作。

删除后的影响

  • 被删除的供应商立即从调度池中移除
  • 活跃的会话不会受到影响,直到会话结束
  • 相关的熔断器状态被清除
  • 缓存被失效,所有实例同步更新

批量重置熔断器

当多个供应商因连续错误触发熔断后,你可以使用批量重置功能快速恢复服务。

熔断器状态说明

状态说明是否需要重置
已熔断(Open)供应商被暂时隔离,不接收请求
半开(Half-open)尝试有限请求验证恢复
正常(Closed)正常运行,接收请求

操作步骤

  1. 选择需要重置熔断器的供应商(1-500 个)
  2. 点击底部操作栏的「重置熔断器」按钮
  3. 在确认对话框中查看即将重置的供应商列表
  4. 点击「确认重置」执行操作

重置效果

批量重置熔断器会执行以下操作:

  • 将熔断器状态设为「正常(Closed)」
  • 清除失败计数器
  • 重置失败时间戳
  • 清除半开状态的成功计数
  • 同步更新 Redis 中的状态(多实例环境)

手动重置熔断器需谨慎。如果供应商的根本问题未解决,重置后可能很快再次熔断。建议在确认供应商服务恢复正常后再执行重置。


自动排序优先级

除了手动批量更新,系统还提供自动排序功能,根据成本倍数智能调整供应商优先级。

功能说明

自动排序按照以下规则批量更新供应商优先级:

  1. 分组排序:按 group_tag 将供应商分组
  2. 成本排序:在每个分组内,按 cost_multiplier 从小到大排序
  3. 优先级分配:成本越低的供应商,优先级越高(数值越小)

使用场景

当你配置了多个成本不同的供应商时,自动排序可以:

  • 让成本最低的供应商优先被选中
  • 自动优化整体请求成本
  • 避免手动逐个调整优先级的繁琐工作

操作步骤

  1. 在供应商管理页面点击「自动排序优先级」按钮
  2. 系统显示预览弹窗,展示:
    • 按分组组织的供应商列表
    • 每个供应商的当前优先级和新优先级
    • 变更摘要(总共多少个供应商会变更)
  3. 确认预览结果无误后,点击「应用变更」
  4. 系统自动执行批量优先级更新

排序示例

假设有以下供应商配置:

供应商分组成本倍数当前优先级
Provider Aprod1.05
Provider Bprod1.53
Provider Cdev0.810
Provider Dprod1.21

执行自动排序后:

供应商分组成本倍数新优先级
Provider Aprod1.01
Provider Dprod1.22
Provider Bprod1.53
Provider Cdev0.81

注意:不同分组内的优先级是独立计算的,Provider C 在 dev 分组中优先级为 1,不影响 prod 分组内的排序。


限制与约束

数量限制

  • 最大批量大小:单次操作最多 500 个供应商
  • 最小批量大小:至少选择 1 个供应商

超出限制时,系统会返回错误提示:

单次批量操作最多支持 500 个供应商

权限要求

  • 所有批量操作仅对管理员角色开放
  • 非管理员用户调用批量操作接口会收到权限错误:
无权限执行此操作

数据一致性

  • 批量更新使用数据库事务保证一致性
  • 如果部分供应商在操作前已被删除,实际更新数量可能少于请求数量
  • 操作结果会返回实际影响的供应商数量

缓存失效机制

批量操作完成后,系统会自动触发缓存失效,确保所有应用实例同步更新。

失效流程

批量操作执行

数据库更新完成

发布 Redis Pub/Sub 消息

所有实例接收消息

各实例清除本地缓存

失效范围

操作类型缓存失效内容
批量更新供应商列表缓存、单个供应商缓存
批量删除供应商列表缓存、单个供应商缓存、熔断器状态
批量重置熔断器仅内存状态,不涉及数据库缓存

降级处理

如果 Redis 不可用,缓存失效会降级为依赖 TTL 过期:

  • 供应商列表缓存 TTL:30 秒
  • 最坏情况下,变更可能在 30 秒后全局生效

最佳实践

1. 分批操作大量供应商

如果需要操作超过 500 个供应商,建议分批进行:

  1. 先选择前 500 个执行操作
  2. 等待操作完成并确认结果
  3. 再选择下一批继续操作

2. 先预览再确认

批量更新前,利用对话框的预览功能确认变更内容:

  • 检查字段开关是否正确启用
  • 验证数值输入是否符合预期
  • 确认受影响的供应商列表

3. 谨慎使用批量删除

批量删除前建议:

  • 先批量禁用供应商观察一段时间
  • 确认无活跃会话依赖这些供应商
  • 备份重要的供应商配置信息

4. 结合筛选使用

利用搜索和筛选功能快速定位需要批量操作的供应商:

  • 按分组标签筛选后批量更新
  • 按类型筛选后批量调整权重
  • 搜索关键词后批量删除测试数据

5. 监控批量操作结果

关注批量操作的返回结果:

  • 检查 updatedCount / deletedCount 是否与预期一致
  • 如果数量不一致,可能有部分供应商已被删除或不存在
  • 查看系统日志了解详细执行情况

故障排查

问题:批量操作提示「无权限执行此操作」

原因:当前用户不是管理员角色

解决:联系系统管理员获取管理员权限

问题:实际更新数量少于选择的数量

原因:部分供应商在操作前已被其他管理员删除

解决:刷新页面查看最新供应商列表,重新选择

问题:批量更新后配置未生效

原因:缓存失效消息未到达所有实例

解决

  1. 等待 30 秒让缓存自然过期
  2. 检查 Redis 连接状态
  3. 手动触发缓存刷新

问题:批量重置熔断器后供应商仍不可用

原因:供应商本身的问题未解决,再次触发熔断

解决

  1. 检查供应商连接状态和 API Key 有效性
  2. 使用「测试连接」功能验证供应商健康
  3. 修复根本问题后再重置熔断器

相关功能

Previous
供应商聚合