PO系列之 同步VS实时

前言

接口开发时,发现很多业务人员无法区分接口的同步属性及业务的实时传输要求.导致每个项目上都要解释如下问题

什么是同步接口

什么是异步接口

什么时候选择使用同步

什么是实时传输

什么是定时传输

本文主要讲解同步/异步接口 实时/定时传输的相关概念 及实时与同步的关系

问答环节

问题的答案均源自本人的理解,不代表标准答案

01

什么是同步接口

数据的发送方在发出数据后,会等待接收方的响应,直到获取到接收方返回的消息,接口调用结束. 

同步接口需要通过识别返回消息中事先约定的成功标记来判断接口传输的业务内容处理成功,标记数据已发送. 

同步接口会在PO中产生两个相关的消息 request(请求)  response(响应)

 

 02

什么是异步接口

数据的发出方在发出数据后,获取HTTP的响应CODE, 如果是200,表示对方成功接收了该消息,发出方可以标记数据已发送. 

异步消息只会在PO中产生一个消息,如果该消息在PO中报错, 可以由PO的监控器发起重新处理.

 03

什么时候选择使用同步接口

一般情况下,如果主数据或单据在发出方系统可以独立创建成功的,则无需使用同步接口传输数据.

大部分的同步接口是以下两类接口

查询类

发出方发出查询条件.

等待接收方执行查询并返回查询结果.

发出方获取查询结果.

执行后续处理.

登记类

发出方发出需要登记的信息.

等待接收方处理.

接收方处理登记信息,返回成功或失败信息

发出方根据成功或失败的反馈执行不同的后续处理.

04

什么是实时传输

实时和同步不是一个概念. 

一般情况下,我们说实时是指源系统的单据或主数据创建后,要立即通过接口传给接收系统. 

保存后通过触发机制立即传输才能称得上是真正的实时传输.

但是一般的系统可能不太支持保存触发或者实现比较麻烦, 所以往往会定义一个频率很高的后台作业发送.

实时接口可以调用同步方式传输,也可以调用异步方式传输

05

什么是定时传输

发出方通过后台作业在指定的时间执行接口程序,传输数据. 可以定义为两种方式:

固定时间    比如 每天8:00执行一次

间隔时间段  比如 每小时执行一次

同步接口VS异步接口

同步接口:

优点

可以立即获取响应信息

只需要发送方处理接口日志(接收方最好也记录日志信息,以便核对)

无需通过PO系统

缺点

需要等待对方的处理

可能出现超时报错

接收方需要单独的进程处理请求,影响系统性能

异步接口:

优点

无需等待对方的处理.

接收方可以自行安排进程在空闲时间处理

缺点

发出后,如果需要业务响应信息,需要通过另外的接口实现

需要使用PO或其它中间件系统

发出方,接收方都需要处理接口日志

接口方式的原则

除非查询类或登记类的接口使用同步方式, 其它都建议使用异步方式

同步接口尽量不使用中间件产品(避免增加环节影响同步接口的响应)

特定的业务需求通过两个异步接口实现(比如门店的需求通过异步接口上传后, 如果需求被拒绝,拒绝的信息通过另外的异步接口反馈给门店)

总结

以上内容只是一家之言. 项目中采用同步还是异步方式,还有一些其它的因素.

开发难易度

是否启用了中间件

保护项目已有的开发

接口的调用频率

接口传输的数据量

......

至于实时还是定时,则完全取决于业务对两边系统数据一致性的需求有多强烈了.  


————————————————
版权声明:本文为CSDN博主「syjf1976_ABAP」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/syjf1976/article/details/119157869

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值