使用Thrift实现RPC简单示例01

看一眼下面的框架,你就会发现,Thrift框架其实与CORBA、ICE很相似。对使用者来说,最大的不同,估计是Thrift用一个可执行文件,生成各种各样的代码咯(别告诉我你信了)。

Thrift Arch

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),就可以开工了。

Leave a Reply

Your email address will not be published. Required fields are marked *

*