异构系统对接方案(自己理解的,不一定正确,仅供参考)原创
金蝶云社区-比邻星
比邻星
1人赞赏了该文章 26次浏览 未经作者许可,禁止转载编辑于2024年09月30日 14:55:42
summary-icon摘要由AI智能服务提供

本文讨论了系统对接的必要性(解决信息孤岛)、四种对接方式(中间库、WebService、WebApi、消息队列)及其优缺点,强调了对接时需注意的事项(如数据类型、方式、方向、时效性、正确性、一致性、性能、安全性)以及对接前的准备工作(目的理解、规范制定、场景考虑、日志记录)。

一、为什么要进行系统对接?
解决信息孤岛问题,对接一些需要相互之间进行数据交互的场景
二、对接方式有哪些?
2.1 中间库方式
对接双方采用中间库方式进行对接,定义好要传递的表和字段,双方约定好规则去插入或读取数据
  • 优点:技术相对简单

  • 缺点:需要开放数据库访问、不适应云开发、安全性能差

2.2 WebService方式
对接双方采用webservice方式进行,数据通过xml进行传递,双方需要约定好xml的参数,目前一些老的系统还采用这种方式
  • 优点:能适应于不同系统间的分布式应用

  • 缺点:当xml内容比较大时,解释程序的执行效率低,不适用于大批量数据交互

2.3 WebApi方式
目前这种属于主流的对接方式,通过定义接口方法供第三方进行调用,调用接口前要进行身份验证,保证了传输的安全行和灵活性,数据传递以JSON格式为主
1.数据格式比较简单, 易于读写, 格式都是压缩的, 占用带宽小
2.易于解析这种语言, 客户端JavaScript可以简单的通过eval()进行JSON数据的读取(浏览器解析)
3.因为JSON格式能够直接为服务器端代码使用, 大大简化了服务器端和客户端的代码开发量, 但是完成的任务不变, 且易于维护。能够被大多数后端语言支持
2.4 消息队列
消息队列就是把接口的请求放到一个消息的队列里,由这个队列去请求接口,返回结果。
那么他的优点是什么呢?
  • 解耦

传统模式的缺点:
系统间耦合性太强,系统A在代码中直接调用系统B和系统C的代码,如果将来D系统接入,系统A还需要修改代码,过于麻烦!
中间件模式的的优点:
将消息写入消息队列,需要消息的系统自己从消息队列中订阅,从而系统A不需要做任何修改。
  • 异步

一些非必要的业务逻辑以同步的方式运行,太耗费时间。
将消息写入消息队列,非必要的业务逻辑以异步的方式运行,加快响应速度
  • 肖峰

传统模式的缺点:并发量大的时候,所有的请求直接怼到数据库,造成数据库连接异常
中间件模式的的优点:系统A慢慢的按照数据库能处理的并发量,从消息队列中慢慢拉取消息。在生产中,这个短暂的高峰期积压是允许的。
消息队列的缺点:
- 系统可用性降低:你想啊,本来其他系统只要运行好好的,那你的系统就是正常的。现在你非要加个消息队列进去,那消息队列挂了,你的系统不是呵呵了。因此,系统可用性降低
- 系统复杂性增加:要多考虑很多方面的问题,比如一致性问题、如何保证消息不被重复消费,如何保证保证消息可靠传输。因此,需要考虑的东西更多,系统复杂性增大。
三、系统对接需要注意什么?
1. 对接什么数据?
要对接哪些单据或哪些数据
2. 采用什么对接方式?
是采用中间库、webservice,还是webapi
3. 对接的数据方向是什么?
谁调用谁的问题
4. 对接数据的时效性是什么?
是实时触发还是定时执行
5. 对接的正确性如何保证?
要保证双方传递数据的准确性
6. 对接的一致性如何保证?
要保证双方数据的一致性,就是要在同一个事物里
7. 传递的性能如何保证?
大数据量数据传输要考虑性能,同时也要考虑业务人员操作业务系统时的性能占用的问题,如果调用接口造成业务人员卡顿要有解决办法
8. 传递的安全如何保证?
传递前获取接口授权
四、准备工作
1. 充分了解对接工作的目的
2. 双方约定好接口的规范和编写好详细的对接文档
3. 对接双方充分考虑各种业务场景,正向和反向都要考虑充分
4. 对接一定要做好日志记录,便于出现问题快速定位到问题


赞 1