# 第六章 数据通信

数据存储在各个系统中，系统虽然大部分功能都是自身实现的，但是很多时候也需要依赖第三方服务、提供服务给第三方和客户端、前端。这时候就需要数据通信，即如何将数据从一个系统转移到另一个系统。

需要注意的是，这里讲的数据通信指的主要是系统之间的数据通信。因此，从底层介质来讲，基本都是基于网络进行的。而网络传输则主要通过TCP和HTTP两种协议。

其中，TCP是比较底层的传输协议，基于此协议需要自己做很多开发工作。而HTTP是TCP之上的应用协议，基于HTTP的数据传输机制实现较容易，但无法针对特殊场景做底层的优化，性能上不如TCP协议的数据传输机制。

基于以上协议，目前常用的系统间数据传输方案主要包括以下几种：

* RESTful：符合REST（Representational State Transfer）架构风格的设计，主要指API的设计。
* RPC: 远程过程调用，可以基于TCP协议，也可以基于HTTP协议。
* 消息中间件：利用消息队列，做为数据传输的介质，基本上都是基于TCP协议。
