宕机描述
极验一直极力避免因极验服务宕机导致业务发生中断,但是有可能遭遇不可抗力导致请求极验服务失败。如果发现请求极验的文件或者前端发送数据失败,说明有可能极验的服务宕机。
极验在以前的版本中设定了强制server校验,增加了每次请求逻辑的复杂度。目前极验的服务稳定性已达到99.99%以上级别,因此在目前版本中不再做宕机的强制流程,交由客户的server自行处理,以适应业务需求。
Deepknow 定位为一款风险感知类产品,产品设计中默认不主动检测宕机,因此不建议客户在业务中耦合风险判断逻辑,而是在业务流程中对风险做匹配处理。
宕机检测接口
Deepknow 提供了状态存活接口:http://api.geetest.com/gettype_deepknow.php
1. 接口参数:
完整请求示例:http://api.geetest.com/gettype_deepknow.php?gt=用户后台申请的极验id&callback=geetest_1533527111723
字段名 | 参数 | 示例 |
---|---|---|
gt | 极验用户后台申请的极验部署id | 32位字符串 |
callback | 时间戳 | geetest_1533527111723 |
2. 接口返回:
此接口将检测极验的 id 配置库及服务状态是否存活,如果极验服务正常,会返回如下格式:
geetest_1533015809433({ |
接口意义
- 此接口对极验的库状态及服务状态做了检测,确保极验服务正常才会返回正确结果。
- 此接口将返回当前极验服务的静态文件版本号
如何做宕机检测
被动检测
业务方需要自行在前端检测错误标识。
极验会对前端的引导请求做了服务检测,如果链接中断,会抛出异常,可以在onError
接口中监听。获得请求中断标识后,请直接对业务走正常流程,同时通知 server 极验已经宕机。
心跳检测
业务方需要主动在服务器发起宕机心跳检测。
在前端加载 Deepknow 之前,业务方 server 可自行使用http://api.geetest.com/gettype_deepknow.php 接口,如果返回200
代表极验服务正常,如果发生异常,建议业务方对极验服务做宕机处理。
宕机处理方法
当确认极验服务宕机后,可以使用如下建议的处理方法:
- 加载自有的备用检测流程,比如启用短信验证、密保验证等。
- 正常跳过检测,但是对用户做特殊标记处理。
注意事项:为防止前端请求可能被篡改,黑产利用宕机流程绕过检测,建议以 server 检测服务为宕机标准。且对宕机通过的用户做标记处理,因为极验发生宕机的可能性极低。