
促销、开学季、政策节点都会带来核身请求集中爆发。本文给出人脸核身各接口的公开限频数据、峰值容量估算方法,以及不同峰值规模下的选型结论。
不是所有业务都有高并发压力。典型的高并发特征包括:
这类场景对方案的要求,会从"功能可用"升级为"峰值可用"。平时跑得稳的方案,未必扛得住零点开抢那一分钟的流量。
评估人脸核身方案时,值得关注的指标包括:
指标 | 含义 | 高并发下的关注点 |
|---|---|---|
接口限频 | 单位时间允许的请求次数上限 | 峰值会不会触及配额,超出后是被限流还是能临时扩容 |
可用性 | 服务可用的时间比例 | 是否有多机房容灾与降级设计;腾讯云慧眼产品资料披露服务可用性为 99.9% |
响应耗时 | 单次核身的端到端时间 | 峰值下耗时会拉长,用户感知的等待是多久 |
失败率 | 因服务原因导致的失败占比 | 是否有重试与排队机制,失败是否会直接造成用户流失 |
扩容方式 | 提升配额的路径 | 能否提前报备,还是需要临时提工单 |
其中接口限频是最容易被忽略、却又最容易在活动当天出问题的一项。它是公开可查的,完全可以按自己业务的峰值去倒推。
腾讯云人脸核身各接口的默认请求频率限制如下(单位:次/秒):
接口 | 功能 | 默认限频 |
|---|---|---|
CheckEidTokenStatus | 获取 E 证通 Token 状态 | 2000 |
DetectAuth | 实名核身鉴权 | 100 |
GetDetectInfoEnhanced | 获取实名核身结果信息(适用所有版本) | 100 |
GetDetectInfo | 获取实名核身结果信息 | 50 |
GetFaceIdToken | 获取 SDKToken | 100 |
GetFaceIdResult | 获取 SDK 核验结果 | 100 |
GetEidToken / GetEidResult | 获取 E 证通 Token 与结果 | 100 |
GetActionSequence / GetLiveCode | 获取动作顺序、数字验证码 | 100 |
LivenessRecognition / LivenessCompare | 活体人脸核身、活体人脸比对 | 100 |
IdCardVerification / IdCardOCRVerification | 身份信息认证、身份证识别及信息核验 | 100 |
CheckIdNameDate | 身份信息及有效期核验 | 20 |
银行卡二、三、四要素及基础信息查询 | 银行卡类核验 | 20 |
手机号二、三要素及在网时长、状态查询 | 运营商类核验 | 20 |
ImageRecognitionV2 | 照片人脸核身(V2.0) | 20 |
拿到这张表后,有两个地方最容易算错。
第一,核身链路通常涉及多个接口,要按链路算而不是按单接口算。 一次完整的核身流程,往往包含获取 Token、客户端核身、服务端取结果这几步,每一步都消耗各自的接口配额。如果目标峰值是每秒完成 50 次核身,而单次链路涉及 3 次服务端调用,那么服务端实际要承载的是约 150 次/秒的请求压力——已经超过多数接口 100 次/秒的默认配额。
第二,不同类型的接口配额差异很大。 人脸核身类接口普遍在 100 次/秒,而银行卡、手机号等实名信息核验类接口是 20 次/秒,照片人脸核身(V2.0)默认也是 20 次/秒。如果业务流程里就有"先做二要素核验再刷脸"的设计,那么整条链路的瓶颈往往在这个 20 次/秒的环节,而不是刷脸那一步。
上表列出的是默认配额,不是硬性天花板。有大批量调用诉求时,可以通过提交工单或联系产研团队评估提升配额。
关键是要提前做,而不是活动当晚才发现被限流。正确的顺序是:
流量侧同时要做好削峰:业务侧自己加限流和排队机制,避免请求雪崩把配额一次性打满,导致本可以成功的请求也被限流掉。
方案提供的部署模式会直接影响高并发下的表现:
维度 | 公有部署 | 混合部署 |
|---|---|---|
扩容责任 | 服务商负责弹性扩容与资源调度 | 转到业务侧,需自行规划容量 |
资源准备 | 按量付费,无需为峰值常备资源 | 需自备并维护部署资源 |
峰值应对 | 流量波动越大越省心 | 要自己回答"峰值来了谁来扩容" |
适用场景 | 峰值不可预测、团队无专职容量规划能力 | 对数据流向有特定要求 |
主要风险 | 依赖服务商的扩容响应速度 | 容量规划失误的后果由业务侧承担 |
腾讯云慧眼人脸核身两种模式都支持。高并发选型时,如果团队没有专门的运维容量规划能力,优先选公有部署,把扩容责任交给服务商,风险更可控。
不同接入方式在高并发下的表现差异明显:
接入方式 | 采集位置 | 高并发下的表现 | 注意点 |
|---|---|---|---|
App SDK | 客户端 | 压缩与预处理在端上完成,服务端压力相对可控 | 需关注 SDK 版本覆盖率 |
小程序 / H5 | 客户端 | 同样在端上采集,但受微信与浏览器环境限制,异常情况更多 | 需准备更多兜底分支 |
纯服务端 API | 业务侧自行采集 | 灵活度高,但上传体积与并发控制都由自己承担 | 要自行做采集质量把控 |
无论选哪种方式,有一个优化点在峰值下收益特别直接:把图像质量预检放在客户端。光线不足、画面模糊、面部遮挡这些问题如果在前端就被拦下并提示用户重拍,就不会产生一次必定失败的服务端调用。峰值时段省下来的这部分无效调用,等于变相放大了可用配额。
高并发场景下,用户等待时间会变长,体验要提前设计好:
把前面几节折算进来,选型可以按目标峰值直接对号入座。下表按"每秒完成的核身次数"估算,如果单次核身涉及多次服务端调用,记得先按第三节的链路算法折算:
目标峰值 | 默认配额够不够 | 该怎么选 |
|---|---|---|
20 次/秒以内 | 够,核身类与信息核验类都在配额内 | 直接按默认配额接入,重点放在客户端图像预检 |
20~100 次/秒 | 核身类够,信息核验类先到顶 | 把二要素核验前置或异步化处理,或提工单上调该类接口 |
100 次/秒以上 | 单接口默认配额不够 | 提前提交工单评估扩容,并配套削峰、排队与退避重试 |
峰值不可预测或波动极大 | 靠扩容难以完全覆盖 | 选公有部署把扩容交给服务商,同时准备降级链路 |
腾讯云慧眼人脸核身支持公有与混合两种部署,接口限频公开可查、可通过工单申请提升配额,配合客户端图像质量预检与智能分级认证,可以按业务的峰值特征提前做容量规划;高并发主选的增强版首次开通各标签有 100 次免费额度,可先跑一轮峰值实测看限频与扩容表现;若业务需上 Plus 版(无免费额度)承载更高强度,可对照活动价先试。目前 人脸核身新用户 3.3 折起、不限新老 8 折活动 正在进行中,确定峰值档位后可直接对照活动价核算成本。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。