快连设备台账与并发策略:14 个字段支撑 200 台并发管理

设备台账是企业版的账目底稿,完整记录 14 个字段,包含设备指纹、最后上线时间与订阅归属。台账与并发策略共用同一份数据源,任何并发调整都会在台账中留下记录。

01 / FIELDS

快连账号台账的 14 个字段

字段分为三组:标识类 5 个、状态类 5 个、归属类 4 个,采集来源与刷新周期各不相同。

台账字段表

序号字段含义采集来源与周期
1device_id设备唯一编号下发时生成,永久不变
2device_fingerprint设备指纹客户端 v4.2.0 本地生成
3group_name所属分组下发批次决定
4route_line使用的线路编号客户端上报
5protocol所用协议客户端上报
6online_state当前在线状态每分钟 1 次心跳
7last_online_time最后上线时间心跳中断时写入
8client_version客户端版本每 60 秒上报一次
9traffic_gb本账期已用流量每分钟 1 次采样累计
10avg_latency_ms平均延迟探针每分钟 1 次采样
11config_template当前配置模板下发成功后写入
12subscription_owner订阅归属成员与席位关系推导
13billing_cycle所属账期按 30 天账期切分
14ticket_count关联工单数工单创建接口回调
快连设备台账配图 · 快连官网示意插画
快连设备台账配图一:快连官网示意插画,仅用于版面示意。
快连设备台账服务配图 · 快连官网示意插画
快连设备台账配图二:快连官网示意插画,仅用于版面示意。
02 / CONCURRENCY

快连设备的两层并发上限

并发限制同时存在于任务层与线路层,两者取更小值生效,避免单条线路被单个客户的批量任务占满。

并发限制

层级上限统计维度超限表现
批量任务并发200 台同一批次的在线设备数返回 KL_CONCURRENCY_EXCEEDED
专属线路并发200 条单条线路的连接数新连接进入排队
客户端心跳采样每分钟 1 次单台设备连续缺失 3 次标记离线
  • 专属线路并发上限为 200 条连接,例如 EL-01 在 200 条连接全部占满时,新接入会排队而不是被直接拒绝。
  • 任务并发 200 台与线路并发 200 条同时触顶时,实际并发取两者较小值,排队情况可在台账的 online_state 字段观察到。
  • 并发调整按分组进行,单次调整写入 1 条审计记录,记录保留 180 天。
03 / FINGERPRINT

快连设备指纹与重复识别

指纹由客户端在 v4.2.0 版本中生成,采集硬件与系统特征组合,同一台机器重复安装保持不变。

  • 同一指纹在 24 小时内出现在 2 个分组时,控制台提示冲突并保留先注册的那条记录。
  • 换机后指纹变化属于正常场景,需要在台账中手工把旧记录标为停用,不占用席位。
  • 指纹冲突检查在预检阶段执行,200 台批次的指纹比对实测耗时约 12 秒。
JSON按指纹筛选的台账查询片段
{
  "filter": { "group_name": "shanghai-office", "online_state": "offline" },
  "fields": ["device_id", "device_fingerprint", "last_online_time", "subscription_owner"],
  "limit": 200
}
04 / LATENCY

快连延迟数据的采样口径

延迟数据来自探针,探针每分钟采样 1 次,连续 7 天产生 10080 个采样点,统计口径在企业版内保持一致。

延迟统计

线路分区采样点延迟均值最高区间
欧洲线路 8 条10080 个186 毫秒262 毫秒
亚太线路 4 条10080 个92 毫秒148 毫秒
全部分区10080 个139 毫秒262 毫秒

均值按算术平均计算,异常抖动样本不剔除;台账中的 avg_latency_ms 字段保存的是该设备 30 天账期内的累计平均值。

05 / EXPORT

快连设备台账导出与留存

导出用于内部核对与审计举证,格式统一为 CSV,带 UTF-8 编码标记以便直接用表格软件打开。

  • 单次导出上限 10 万行,超过该行数需要按时间窗或分组拆分后再导出。
  • 导出任务在后台排队,200 行的小额导出的实测等待时间为 15 秒。
  • 导出文件在控制台保留 7 天,到期自动删除,需要长期归档的请在 7 天内另存。
  • 导出动作本身会写入审计日志,记录包含操作人、行数与时间 3 个要素。
06 / LINK

快连设备台账相关页面继续阅读

台账核对无误后,可以进入计费与问题排查环节。

function footer() { return ``; }