看一眼下面的框架,你就会发现,Thrift框架其实与CORBA、ICE很相似。对使用者来说,最大的不同,估计是Thrift用一个可执行文件,生成各种各样的代码咯(别告诉我你信了)。
Thrift是典型CS架构,与ICE、CORBA相同,Thrift帮我们处理的底层的网络通信及服务定位,我们只需要告诉Thrift服务在哪里,需要哪个服务,调用参数是什么,然后就坐等处理结果就好咯。
使用Thrift的时候,首先要先下载Thrift的开发包,分两部分。
Thrift
一个是一个EXE文件,适用于从IDL描述文件,生成各类语言代码的。
第二个是源码压缩包,用于编译自己所需语言的支持包。
受用Thrift之前,要先编译需要的语言支持包,我这里用到了C#和Java。
Java包,直接到路径lib/java下,执行ant命令就好了
C#包,直接到路径lib/csharp/src下,用VS编译Thrift.sln就好了
使用Thrift的时候,首先要用IDL语言,定义一个接口描述文件,比如我自己写了一个很简单的接口。
JustATest.thrift
struct Person { 1: string name 2: i32 age 3: string sex 4: string address } service JustATest { string SayHelloTo(1:Person person); i32 Add(1:i32 a,2:i32 b); }
然后用语言的转化工具,将接口描述文件,转化为对应语言。
#生成java代码,会有两个文件 thrift -gen java JustATest.thrift #生成C#代码,会有两个文件 thrift -gen csharp JustATest.thrift
在对应的项目中包含这些文件及所需要的库文件(jar、dll),就可以开工了。