高并发时接口生成重复数据问题
问题描述
当和异构系统集成时,如果在调用API接口保存数据时,遇到高并发或网络波动,可能会在系统内生成重复数据,如基础资料集成时,出现了相同编码、名称的物料和供应商。这种情况应该怎么处理?
解决方法
由于OpenAPI并不是天然幂等的,如果是在多线程高并发的场景下,通过API保存数据,可能会出现数据重复的情况。解决方法如下:
方法1(推荐):在数据库里建立唯一索引,可以彻底避免这种并发的问题。
方法2:为防止API重复请求及网络问题导致网关重复发送请求包问题,可通过请求头参数传入唯一键控制:
Idempotency-Key: 请求ID,客户端可指定随机数或业务单号;
Idempotency-Timeout:超时时间(秒)- V6.0.12以上。
一定时间内同一API携带相同请求头参数的调用,只有第一次请求执行,其余请求皆不执行,接口返回604-重复请求
适用版本:V5.0.005(BOS)以上。详见API防重复参数。
注意:超时时间默认只校验30秒内的重复请求,最大则支持90天。过期的数据将被清理,超过90天的数据不再校验重复。
方法3:在API配置界面,打开防止重复请求开关。路径:【开发服务云】 → 【开放平台】 → 【API管理】→ 【API开发】。调用API时,若系统识别到完全相同的请求参数,且在30s内第2次调用时,系统会拒绝请求。
适用版本:V5.0.018(BOS)以上。
高并发时接口生成重复数据问题
问题描述当和异构系统集成时,如果在调用API接口保存数据时,遇到高并发或网络波动,可能会在系统内生成重复数据,如基础资料集成时,出现...
点击下载文档
上一篇:操作API介绍下一篇:OpenAPI防止接口重复调用
本文2024-09-23 00:26:27发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-139476.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章