高并发时接口生成重复数据问题

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

高并发时接口生成重复数据问题


问题描述

当和异构系统集成时,如果在调用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接口保存数据时,遇到高并发或网络波动,可能会在系统内生成重复数据,如基础资料集成时,出现...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息