博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
软件接口数据一致性机制
阅读量:6329 次
发布时间:2019-06-22

本文共 660 字,大约阅读时间需要 2 分钟。

    

软件互联互通的普及导致软件之间的调用越来越多,但两套软件不在同一个事务中控制,极易导致二者数据不一致的情况。
可采用以下机制,保证软件接口数据一致性
1.调用方访问服务器,如果在一定时间内(设定的超时时间,或人为强制中断)没有收到成功信息。有以下几种情况:
(1)服务器没收到请求,结果网断了。
(2)服务器收到了请求但保存失败,在返回结果前网断了。
(3)服务器保存成功,但在返回结果前网断了。
原则:调用方只要成功发出请求,但没有收到保存成功的返回信息,则自动调用冲销功能。
此时调用冲销很有可能不成功,多数情况是网络不稳定了。经3次尝试冲销都失败后,记录下来,到下次(需确定触发机制)再调用进行冲销。
因此在给服务器发送保存之前,调用方需要先把要发送的数据保存到数据库中。否则有可能操作员等不到服务器的返回信息,强行结束了程序。
如要继续提交同一笔数据,应自动先调用冲销成功后再发送提交请求。
2.调用方与服务器方都要各自保存对方的交易流水号,可以用来防止重复数据上传。
  服务器方可以把用户编号+调用方的交易流水号做为唯一性约束,这样可防止调用方同一笔数据的重复上传。
3.对账:每天0时后,自动进行对账,标出对账成功与失败的情况。对账标志分为:未对账、对账成功、对账失败。
其中对账失败的要记录下失败原因。
分为以下几种情况:
(1)调用方有,但服务方没有:按以上机制,基本不会出现。
(2)调用方没有,但服务方有:服务方数据仍为未对账状态。
(3)二者数据内容不一致:对账失败。

 

如果有好的思路,在此一起讨论。

 

 

转载地址:http://atfoa.baihongyu.com/

你可能感兴趣的文章
awesome go library 库,推荐使用的golang库
查看>>
树形展示形式的论坛
查看>>
jdbcTemplate 调用存储过程。 入参 array 返回 cursor
查看>>
C++中的stack类、QT中的QStack类
查看>>
Linux常用基本命令[cp]
查看>>
CSS 相对|绝对(relative/absolute)定位系列(一)
查看>>
关于 Nginx 配置 WebSocket 400 问题
查看>>
Glide和Govendor安装和使用
查看>>
Java全角、半角字符的关系以及转换
查看>>
Dubbo和Zookeeper
查看>>
前端项目课程3 jquery1.8.3到1.11.1有了哪些新改变
查看>>
UOJ#179. 线性规划(线性规划)
查看>>
整合spring cloud云架构 - SSO单点登录之OAuth2.0登录认证(1)
查看>>
Isolation Forest原理总结
查看>>
windows的服务中的登录身份本地系统账户、本地服务账户和网络服务账户修改
查看>>
JAVA中循环删除list中元素的方法总结
查看>>
redis 安装
查看>>
SQL some any all
查看>>
电子书下载:Programming Windows Identity Foundation
查看>>
有理想的程序员必须知道的15件事
查看>>