目录
一、系统集成的四种基本方式
业界关于系统集成存在的驻留模式和工程实践主要有如下四种基本方式:文件传输FT、共享数据库SD、远程过程调用RPC和消息传递M。
文件传输(共享)
集成部分所做的事情主要是将文件根据应用的不同需要做格式的转换。考虑这种集成方式,我们有几个重要的问题需要考虑:
- 文件的格式:考虑到不同应用系统传递消息的具体样式不一致,A应用产生的文件如果能够给B应用直接使用是最好的了。常见的方法是传递XML或者JSON格式的文本。
- 什么时候产生文件以及什么时候处理文件:避免应用系统之间信息的不同步或者信息错误。
采用文件传输还有一个优点就是对于集成的系统来说它比较完美的屏蔽了集成的细节。每个系统只要关注符合标准格式的文件内容,具体实现和数据交换他们都不需要关心。
共享数据库
集成部分所做的事情主要是保证数据的一致性,实际中要考虑一下问题:
- 对于多个应用来说,这个共享数据库需要能够适应他们所有的场景。
- 不同的应用可能会同时访问相同的数据导致数据访问冲突,因此也会带来如死锁等问题。
这种方案出现问题的根源在于用一种统一的数据模型来解决各种不同的应用需求是并不现实的。
RPC(远程过程调用)
集成部分所做的事情主要是,需要访问远程方法的时候,需要定义访问的接口,然后通过相关工具生成skeleton和stub。然后一端通过stub给另外一端发送消息。在应用A本地的代码中访问stub看起来还是和调用本地方法一样,这些细节都由stub给屏蔽了。
实际中需要注意的是:
- 局限于一个平台,好比说我应用A是用java做的,那么如果要和另外一个系统通过RMI集成的话,那个系统也必须是java做的。
- 紧耦合,如果另外一个系统出现故障也会对调用方产生很大影响。
- 用RPC调用的时候默认期望消息是按照发送的顺序给接收方的。但是由于各种环境的影响会使得接收的结果乱序,这样也可能会导致系统执行出现问题。所以从可靠性来说还是存在着一定的不足。
消息队列
集成部分所做的事情主要是,所有应用之间要通信的消息都通过消息队列来传输,由消息队列来保证数据传输的异步性、稳定性等。总的来说,这看起来有点像网络连接结构。所有数据通过一条可靠的链路来进行通信。
消息队列算是一种兼顾了性能、可靠性和松耦合的一种理想集成方式。
对比四种系统集成方式的特点、优缺点
方式 | 工作原理 | 特点 | 优点 | 缺点 |
---|---|---|---|---|
文件传输(FT) | 系统之间通过共享文件或文件夹进行数据传输和共享。 | 简单、成本低廉 | 易于实现 | 实时性差,不适用于大规模、高频率的数据传输 |
共享数据库(SD) | 多个系统共享同一个数据库,通过数据库操作实现数据共享和交互。 | 数据一致性高,实时性较好 | 简化数据交互和共享,减少数据冗余 | 系统之间耦合度高,容易导致单点故障和性能瓶颈 |
远程过程调用(RPC) | 通过远程调用技术实现不同系统之间的方法调用和数据传输。 | 提供类似本地方法调用的编程模型 | 提高系统之间的通信效率和性能,降低系统耦合度 | 系统依赖性高,耦合度较大,需要谨慎设计接口和协议 |
消息传递(M) | 系统之间通过消息队列或消息中间件进行异步消息传递。 | 支持异步通信,提高系统的可伸缩性和容错性 | 解耦系统之间的依赖关系,实现松耦合 | 实时性较差,消息可能丢失或重复,需要考虑消息的顺序和一致性问题 |
二、微服务集成的四种主要方式
对于微服务架构而言,我们的思路是尽量采用标准化的数据结构并降低系统集成的耦合度。微服务架构中服务之间的集成模式主要分为以下四类,具体如图所示:
接口集成
- 描述:基于业务逻辑的需要进行集成,通过定义和实现服务之间的接口来实现通信和数据交换。
- 技术:包括RPC(Remote Procedure Call,远程过程调用)、RESTful API、消息传递和服务总线等。
- 特点:适用于服务之间的直接通信和调用,实现了松耦合的服务间交互。
数据集成
- 描述:用于服务之间的数据交互和共享,通过共享数据库或数据复制等方式实现。
- 技术:共享数据库是一种选择,也可以通过数据复制、数据同步等方式实现数据的共享和同步。
- 特点:数据集成可以实现数据的一致性和实时性,但也会增加系统之间的耦合度。
客户端集成
- 描述:微服务之间通过UI界面进行集成,即服务通过客户端界面相互调用和交互。
- 技术:通常使用前端技术如HTML、CSS、JavaScript等实现客户端界面。
- 特点:适用于需要用户交互的场景,但会增加客户端的复杂度和维护成本。
外部集成
- 描述:集成需求来自于外部服务的依赖和整合,可以综合接口集成、数据集成和UI集成等方式。
- 技术:取决于外部服务的特性和接口,可能需要采用多种集成方式。
- 特点:外部集成需要考虑外部服务的接口规范和数据格式,可能需要定制化开发和适配。
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/hd-wfwjg/4307.html