聊一聊异构系统间数据一致性

Python微信订餐小程序课程视频

https://blog.csdn.net/m0_56069948/article/details/122285951

Python实战量化交易理财系统

https://blog.csdn.net/m0_56069948/article/details/122285941


之前忙活过一个多方合作的项目,异构系统间维护数据一致性有时候是个头疼但必须解决的问题,今天我从背景、问题、解决思路、技术方案等几个方面浅谈一下,抛砖引玉。

背景

异构系统

近两年我司承接了某个持续性的会议项目,即每季度或月不定期举行会议。本项目目前有三个主要供应方(面向用户的A方,数据中间B方,会议数据同步C方【我司】)。
为了方便演示问题,以下流程和职责都做了裁剪。

简化流程如下:

简化职责如下:

  • A方职责: 用户通过官网/小程序进行报名,A方调用B方的标准接口,不存储数据
  • B方职责:作为ISP,提供标准查询、新增、修改等相关接口,几乎不提供定制。基于表单和表单数据,完成数据存储与流转。
  • C方职责:提供导入/更新/审核/注销等入口,新数据会通知到B方,B方数据新增/更新也会通知到C方。

从图例来看,B方/C方数据存储方面是冗余的。但B方只存储了核心数据,提供不了太多业务行为,C方具有业务需要的全套流程,但在此项目中作为后方支持及后续现场支持,三方形成了一种生态和谐。本篇博客主旨在讨论多方异构系统之间如何保证数据的一致性。

产品/项目

从标准Sass系统来讲,这样的多方交互,不利于系统稳定性,有诸多不可控因素。但从项目角度,这是各方考虑/斗争/谈判/费用等综合因素下友好协商的结果。
当然这是一个私有部署项目,所以会有很多坚持和妥协。

大领导提到一个说法:项目是要交付的,功能完美是产品考虑的。在功能不完善的情况下,如何去交付?

最后的兜底

哎,一言难尽。是通宵了几次核对/修复数据的,这是最后的办法了。为了苦逼不再重现,今年要对整个线动一动手术。(说好的.net 不996呢?)(拿着白菜价操着卖白粉的心)。

问题

请求无序

  • C方 需要所有子会报名前,主会必须报名。
  • B方 各会之间的报名数据是无序到达的。

循环更新

  • B方 任意报名数据更新或新增都会推送到C方,C方收到更新也会更新B方。这里有一些措施进行了拦截中断,但仍会频繁循环更新问题。这是目前现状(为什么会出现?太赶工?)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值