服务框架
在《时序数据库系列1-综述》中说过时序数据库存在高吞吐写的特点,因此在时序数据库中客户端和服务端远程传输数据的性能非常重要,数据传输的性能直接影响了数据库整体的读写性能。
起始除了内存数据库之外,其他类型的数据数据库都面临着客户端到服务端的远程调用,同样的时序数据库也面临同样的需求。那么在C/S间的远程调用方式有哪些呢?最常见的就是RPC和HTTP。
1.RPC:即Remote Procedure Call,远程过程调用,通常基于TCP/IP协议。
2.HTTP:即超文本协议,基于HTTP协议,在TCP协议之上。
上述表述并不严谨,严格地说HTTP只是一个通信协议,工作在OSI第七层。而RPC是一个完整的远程调用方案,它包含了:接口规范、传输协议、数据序列化反序列化规范。在本文中我们用HTTP指代基于HTTP的远程调用方案(如:HTTP+RESTful+JSON)
适用场景
RPC基于TCP/IP协议,主要用于系统内部服务调用,传输效率高,性能消耗小。
HTTP基于HTTP协议,其报文中包含的臃肿的头部信息,一般用在网关之前来提供系统与系统之间的通信,性能消耗大。
性能测试
作者对HTTP和RPC发送数据的性能进行了简单测试,测试条件和结果如下:
网络环境:内网万兆网,循环20000次
数据环境:每条记录有120个 Java Integer字段,每5000条记录一个批次
并发:20并发
测试结果:
http:平均值 10