如何实现高质量的系统数据对接/API接口整合集成方案?

我们建立一个数字化系统可能会有跟别的系统进行数据对接的需要,而别人的数字化系统也有可能需要跟我们的系统进行数据对接,也可能我们开发了不同的网站,网站小应用之间需要进行数据对接。那么数据对接应该如何操作呢?怎么才能更好地做好数据的同步?跨系统数据一致性问题怎么解决?本文旨在总结沉淀工作中问题的解决经验,通过统一的轻易云数据集成平台整理解决跨系统数据不一致问题的经验方法。

一、解决跨系统间数据一致性的难题

提到数据一致性,我们很容易想到的就是数据库中的事务操作。事务的原子性和持久性可以确保在一个事务内,操作多条数据,要么都成功,要么都失败。这样在一个系统内部,我们可以很自然地使用数据库事务来保证数据一致性。但是在微服务的今天,一项操作会涉及到跨多个系统多个数据库的时候,用单一的数据库事务就没办法解决了。另外常见的一种情况就是:存在依赖情况的系统服务,例如业务端与用户端(业务端负责生产数据,用户端负责展示数据),需要数据同步来保障跨系统服务的数据一致性,很多时候采用何种数据同步方式,来保障数据应用的时效性至关重要。

做数据对接需要考虑一个是单向数据对接还是双向的数据对接,如果是单向的数据对接我们只需要考虑去获取数据,也就是从目标数字化系统或是其它数字化系统从我们数字化系统上获取数据,我们通过API进行获取或是传输数据给对方。如果是我们数字化系统上注册的会员数据需要同步给对方,对方那边注册的会员数据,修改的会员资料也需要同步过来,做到数据双方的实时更新,这个就是做数据的双向对接了。不仅我们需要传输数据过去,对方也需要传输数据给我们,不过这个不需要我们提供API接口给对方,对方也提供API接口给我们,只需要一方的API接口实现数据的获取跟传输就可以了。这种数据的双向对接会用在很多的平台上,我们在进行对接的时候也要考虑我们需要的是数据的获取就可以,还是还需要把数据传送过去。如果是需要做到双向对接,而我们只考虑单向对接的话,数据就会出现问题。比如对方那边注册的会员数据同步给我们了,但是我们这边注册的会员数据没同步过去,客户就无法在对方数字化系统上登录使用。 

二、一致性的难题的分析

为了能够更好的描述与理解数据一致性问题,通过一个案例来实战阐述:

假设存在订单系统与库存系统,分别是金蝶云ERP与一款WMS系统之间需要进行数据对接,在实际业务中订单的创建会伴随着系统仓库模块的库存减少。两个系统为分别部署,其应用数据也存放在独立的数据库中,两个系统间通过网络API接口进行通信。

 

如何做数据对接呢,这个主要是通过API进行的,也就是提供数据方编写接口文档,告知对接方应该通过哪一些的字段什么样的形式进行数据的获取。进行数字化系统搭建数据对接时不仅仅要考虑数据的获取,也要考虑到数据的传输,具体要用什么样的形式要看双方对于数据的要求。如果是不仅需要获取也需要传输的,就要将这方面的数据对接考虑上,不然对接之后,数据会出现问题,这个是一个主要注意的点。其它的,只要是有API接口,对接就基本不会有什么问题。

2.1、数据集成平台 CAP 原则

CAP 之间本身就是处于互斥的,只能从这三者中选两个处理,对于 CA、AP、CP 都有它们自己的应用场景,要结合实际进行选择。

  • CA 因为不考虑分区容忍度,所以它的所有操作需要在同一进程内完成(也就是我们常说的单体应用);
  • AP 因为放弃数据一致性,适合数据要求不高但强调用户体验的项目,如博客、新闻资讯等;
  • CP 反之放弃了可用性,适合数据要求很高的交易系统,如银行交易、电商的订单交易等,就算是用户长时间等待,也要保障数据的完整可靠。
    CAP 原则在实际项目中的运用,对于互联网应用来说,如果为了用户体验完全放弃数据一致性这也是不可取的,毕竟数据才是应用的根本。
    数据集成平台需要如何解决CAP互斥性呢?
    保障最终一致性的措施有很多,主要包括:分布式事务和 TCC 一致性方案。MySQL 其实有一个两阶段提交的分布式事务方案(MySQL XA),但是该方案存在严重的性能问题。
比如,一个数据库的事务与多个数据库之间的 XA 事务性能可能相差 10 倍。另外,在 XA 的事务处理过程中它会长期占用锁资源,所以一开始我们并不考虑这个方案。

 

三、高可用的系统数据同步方案实践

问题描述:还是回到之前的数据集成案例场景,数据需要从金蝶云星空系统同步到旺店通系统。订单系统同步到库存系统中。
解决数据一致性常用的三类数据同步方案:实时同步、定时同步、手动同步。数据集成平台设计核心特性:
• 实时数据集成API统一管理
• 可视化的配置工具
• 实现低代码集成方案
• 非入侵式
• 松耦合集成
• 不侵入现有业务系统
• 敏捷交付开箱即用
• 丰富的场景化集成方案

采用异步协程架构模式设计的数据集成平台,通过Message Queue(MQ),消息队列中间件。MQ 通过将消息的发送和接收分离来实现应用程序的异步和解偶,同时 MQ 屏蔽底层复杂的通讯协议,定义了一套应用层的、更加简单的通讯协议。在业务系统设计中,我们常常会存在一个平台系统 金蝶,它关联同步了许许多多的系统的对接(系统 聚水潭、泛微、MES 等)。利用 MQ 可以很好的解决系统对接和数据同步问题,同时可以忽略对接系统的稳定性等诉求。 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/64330.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

以聚合数据为例,详细说明API接口使用方法

前言 以聚合数据为例,详细说明API接口使用细节方法,说明清楚如何使用API接口的每个步骤,防止以后忘记没地方找。 API网站注册后最重要的个人数据是请求key值,每个不同的数据都有与之对应的请求key值,这里我拿新…

举例说明如何使用【聚合数据】的API接口

更新:这篇文章写于2016年8月,现在的聚合数据可能有些变化,申请使用的方式相应有所改变,所以本文只作参考. ________________________________________________________________________________________________________________…

企业微信增加企业内部应用入口的超链接

背景 2020年初,新冠疫情导致很多企业远程办公,接到许多方便员工移动办公的开发需求.比如最近接到一个任务,是需要再企业微信的工作台台添加一个超链接,连接到企业已经有的一个web项目上去.并且能够携带用户信息进行访问. 放超链接很简单,复杂的是如何携带用户信息到这个超链接…

企业微信url及生成授权链接

企业微信第三方开发课程 14-18 一、简介 这里主要分为四部分,验证 url 有效性、完成用户的测试安装、获取生成预授权码、生成授权安装链接。这几部就可以完成第三方有用的回调和安装,这也是后续功能开发的基础。 二、Get 请求验证 URL 有效性 1.为什…

对接企业微信3:网页授权登录

构造网页授权链接 如果企业需要在打开的网页里面携带用户的身份信息,第一步需要构造如下的链接来获取code参数: https://open.weixin.qq.com/connect/oauth2/authorize?appidCORPID&redirect_uriREDIRECT_URI&response_typecode&scopesnsa…

企业微信-构造网页授权链接实现登录

文档地址:构造网页授权链接 - 接口文档 - 企业微信开发者中心 注意: 1.redirect_uri:回调链接地址,需要使用urlencode对链接进行处理 2.scope:如果需要获取成员的头像、手机号等信息需要设为snsapi_privateinfo 例如前…

windows浏览器无法访问虚拟机上Linux部署的consul

一、问题: 查看consul服务 是启动的,但是就是无法访问。 二、解决步骤: 1、查看防火墙是否关闭或者添加接口映射 关闭防火墙(具体看应用场景,请不要盲目的操作) systemctl stop firewalld 查看防火墙状…

插件部署环境

插件部署环境 前言 按照前面的文章已经安装好了同步工具,那么在使用之前,我们需要为同步工具做一些准备工作,插件才能正常使用 准备工作 准备工作主要两点,许可,金蝶环境配置 许可试用 插件一共提供四种许可方式…

RabbiteMQ 部署到虚拟机的 Linux 上,加入插件后,无法通过浏览器访问 RabbiteMQ 控制台

解决办法: 可以通过安装 docker 容器,在 docker 容器上面安装 RabbiteMQ 解决。 具体操作如下: 1.先安装 docker 安装yum工具 yum install -y yum-utils \device-mapper-persistent-data \lvm2 --skip-broken更新本地镜像源: …

量化交易入门--写第一个量化程序

一位量化交易程序员手把手教你入门 上篇介绍完了如何配置量化交易所需要的环境,这篇继续介绍如何写第一个量化交易程序。 MT4提供的sample程序只有基本的功能,不能够自动交易。 我们写一个自动交易程序,逻辑如下 下一个多单 检查当前盈…

《PyTorch深度学习实践》

【《PyTorch深度学习实践》完结合集】 https://www.bilibili.com/video/BV1Y7411d7Ys/?share_sourcecopy_web&vd_source684aec3a42a2952834511895317ee34b 链接:https://pan.baidu.com/s/1vZ27gKp8Pl-qICn_p2PaSw 提取码:cxe4 一、(学习…

C++_开发图形界面_EasyX(笔记)

笔记目录 前言一、为什么使用EasyX二、搭建EasyX图形开发环境三、测试EasyX图形开发环境1.绘制圆2.用ChatGpt测试EasyX的Y轴朝向 三、图形开发进阶四、黑客攻击系统界面总结 前言 Rock老师 ; C ; EasyX ; 笔记 一、为什么使用EasyX 1.辅助学习和提高C的工具 2.开发简单的图形…

吴恩达机器学习作业二Python实现

作业二 文章目录(嫌墨迹可以直接点击目录跳转到源代码查看) 文章目录 作业二第一题1.1 数据可视化代码讲解结果 1.2 实现1.2.1 热身运动 sigmoid 函数代码 1.2.2 损失函数和梯度代码结果思路 1.2.3 手动梯度下降尝试学习参数代码结果总结 1.2.3 使用fm…

chatgpt赋能python:Python出不来图像如何解决?——Python编程经验分享

Python出不来图像如何解决?——Python编程经验分享 Python是一门非常强大的编程语言,常用于数据处理、Web后端开发、爬虫等领域,但有时候在开发过程中,你可能会遇到Python出不来图像的情况。这时候该怎么办呢?本文将从…

java飞机大战程序图片不显示

作为一个java初学者,最近在学习尚学堂免费的基础java课程时,跟着视频做一个planewar/飞机大战的程序,遇到了背景和飞机图片加载不了的问题,几经搜索,终于解决,分享一下过程和解决办法: 代码片段…

博士申请 | 澳大利亚悉尼科技大学招收人工智能/软件工程方向全奖博士生

合适的工作难找?最新的招聘信息也不知道? AI 求职为大家精选人工智能领域最新鲜的招聘信息,助你先人一步投递,快人一步入职! 悉尼科技大学 澳大利亚悉尼科技大学(UTS)座落于风景优美的悉尼市中心…

香港中文大学岳翔宇老师招收人工智能全奖博士生/博士后/研究助理/实习生

点击下方卡片,关注“CVer”公众号 AI/CV重磅干货,第一时间送达 香港中文大学岳翔宇老师招收人工智能全奖博士生、博士后、研究助理、实习生 岳翔宇博士(个人主页 http://people.eecs.berkeley.edu/~xyyue)将于今年秋季加入香港中文…

关于我——人工智能专业大二的一年

关于我——人工智能专业大二的一年 活动地址:毕业季进击的技术er 写作内容参考方向:在校生 文章目录 关于我——人工智能专业大二的一年大二上学期数学建模社团经历参加的考试学校课程掌握技术参与活动和竞赛 大二下学期参加的比赛掌握技术学校课程最后 …

2023届推免经历分享-四非计算机保研边缘人

四非边缘人的保研历程 小小的开头 随着28号的系统开放,我接受了西电的拟录取,保研之路也就暂告一段落,其实真正花在准备保研上的时间其实不算长。由于我是院里的第一届学生,而且本科学校确实很一般,所以最后专业是否…

人工智能专业读研导师怎么选?建议你收藏这份名单

转自:AI科技评论 踏上学术道路,导师选择是关键中的关键,几乎直接决定你未来科研生涯的幸福指数!随着研究生录取临近,各大院校招生大战烽烟再起,在极具潜力的人工智能领域尤其如此。 在瞄向清华、北大等传统…