开篇介绍:
=======================================================================================================
在这篇文章中主要介绍的是Thrift的使用方法和步骤 。
在前一篇文章中将会介绍的是Protobuf的使用方法和步骤。
连接地址是:Protobuf的使用方法和步骤
在第三篇文章中将会介绍的是 Protocol 和 Thrift 在实现同一个类和其中相同的数据类型的时候,性能的对比分析,
在这里LZ并没有对其中所支持的数据类型或是变量的表示方法进行对比,这些信息LZ会给出官方权威的相关连接,供大家查阅。
LZ对比Protocol Buffer和Thrift的性能主要分为以下的几点:
1. 压缩/解压同一个大型的数组变量所消耗的时间
2.压缩对象之后所占空间和压缩之前的压缩比
3.对于同一个数据对象(即占用同样大小空间的对象) 使用同样的定义方法,即对于相同的形式说明书,分别使用protobuf 和 thrift
两种中间语言,对其进行描述生成的一套完整的代码,对其中的同一个数组这个数据对象进行传输,分别需要消耗的时间进行对比。
4.对比分析,在一种形式说明书中分别生成两种( protobuf , thrift ) 的中间代码,分别编写Server 端实现代码和 Client端实现代码,
还有相应接口的定义代码和接口实现代码的不同,对比哪一个实现步骤更加的清晰。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
本篇文章主要分为三部分:
第一部分: 介绍thrift 的主要功能和使用方法,包括下载配置工作环境和介绍一个简单实现thrift 的例子
第二部分:介绍thrift的中间文件.thrift 中的各个关键字的作用和定义一个与上一篇文章中相同格式的中间文件,并通过该文件生成对应的java代码
第三部分: 介绍如何根据上一步中生成java 代码来编写实现RPC架构的Client端, Server端以及实现接口等一些方法的调用。
----------------------------------------------------------------------let's begin ~ --------------------------------------------------------------------------------------------------------------------
第一部分:
Thrift是一个跨平台的服务部署框架,最初是由Facebook开发的。Thrift通过一个中间语言( IDL,接口定义语言)来定义RPC接口和数据类型,
然后通过一个编译器生成不同类型的代码(目前支持的语言有: C++,Java,Python,PHP, Ruby,Erlang...) ,并由生成的代码负责RPC协议层
和传输层的实现。
Thrift实质上是以C/S 模式来实现的,通过代码生成工具将接口