1. 异步通信方式可分为不互锁、半互锁和全互锁三种类型:
a.不互锁方式
主模块发出请求信号后,不等待接到从模块的回答信号,而是经过一段时间。确认从模块已收到请求信号后,便撤消其请求信号;从设备接到请求信号后,在条件允许时发出回答信号,并且经过一段时间,确认主设备已收到回答信号后,自动撤消回答信号。可见通信双方并无互锁关系。
b.半互锁方式
主模块发出请求信号,待接到从模块的回答信号后再撤消其请求信号,存在着简单的互锁关系:而从模块发出回答信号后,不等待主模块回答,在一段时间后便撤消其回答信号,无互锁关系。故称半互锁方式。
c.全互锁方式
主模块发出请求信号,待从模块回答后再撤其请求信号;从模块发出回答信号,待主模块获知后,再撤消其回答信号。故称全互锁方式。
2.接口业务逻辑处理步骤:
接口集成过程中需注意以下几点:
2.1每条记录需有三个字段:关键值/下发标识/结果标识及消息
2.2接口数据与业务处理尽量分离(需判断接口数据量)
2.3必须遵循握手机制
2.4错误记录的及时反馈及处理
a.若为发送方
1.获取未下发的记录(排除已下发成功或是失败的记录,若是记录下发后返回错误则需业务人员处理后标记为未下发状态)
2.调用下游系统提供的接口
3.若下游系统无反馈,则下发标识为空,若下游系统有反馈值,则当前记录下发标识为X。
同步则立即获取返回结果,并在数据表中标识当前记录的结果及消息文本。
异步则后续根据下游系统的反馈值来判断当前记录的执行结果。
b.若为接收方
1.将初始传入参数进行存储(历史记录)
2.传入值校验,是否数据有误
3.编写业务处理逻辑
4.执行结果输出并返回给上游系统
5.日志记录并消息推送相关责任人(错误记录需业务人员及时处理)
3.接口集成过程中出现的各类问题:
a.通讯异常
接口通信过程中出现超时或是其他异常,而导致下游无返回值,则当前记录需要重新下发。
b.接口数据量大
多线程处理
数据分批轻量化
接口数据与业务分离,接口中尽量不做业务逻辑处理(接口数据先存储后处理--需数据准确前提)。
c.接口数据类型
上下游接口数据类型及字段长度不一致
d.业务处理逻辑
严谨:业务前后逻辑需严谨,不要出现边改订单边入库现象。
先后:业务逻辑处理先后顺序需谨慎,不要出现物料操作出库而该物料还未入库的情况。
逻辑:上下游系统对业务的理解不一致而导致业务处理逻辑不同。
e.业务异常处理
通知:接口出现异常需要及时告知用户(特别是后台处理模式)
处理:接口问题需要及时反馈并处理,特别是财务集成度较高的业务,前端业务错误容易对后续业务造成连锁反应。
日清:异常问题必须日清处理。
f.任意时间点一致
上下游系统数据在任意某个时间点数据需保持一致,若出现差异,急及时检查接口握手机制是否符合要求。
上下游系统数据出现差异都是灾难级的,需消耗很大资源去核对数据。
原文地址:https://www.cnblogs.com/ricoo/p/10064686.html