************写在最前面************
个人比较喜欢Thrift,它可以高效的解决不同编程语言之间的交互问题,使不同编程语言可以很轻松地进行交互,完成软件抑或是系统的架构。
Thrift是一个跨语言的服务部署框架,最初由Facebook于2007年开发,2008年进入Apache开源项目。Thrift通过一个中间语言(IDL, 接口定义语言)来定义RPC的接口和数据类型,然后通过一个编译器生成不同语言的代码(目前支持C++,Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk和OCaml),并由生成的代码负责RPC协议层和传输层的实现。
Facebook使用的几种不同的语言和不同的services。 PHP是最终用于前端,Erlang是用于聊天,Java和C ++也使用于多种场所,也许还有其他语言。Thrift是一个内部开发的跨语言的框架,联系语言,使他们可以在一起合作,从而使他们之间可以交互。 这使得Facebook可以更容易为继续保持其跨语言的发展。
Facebook已经让Thrift开源。更多的语言支持已被添加到Thrift。
Thrift的框架介绍,可以详见董的博客
http://dongxicheng.org/search-engine/thrift-framework-intro/
小弟就不在此谈论了。
***Thrift的安装***
1、安装环境
可以在Linux、win下进行安装,当然在win环境下安装时,需要在win安装相应的插件
在Linux下安装前,需要确保操作系统中有相应的语言编译器,如gcc、g++、erl等,根据自己的需要进行安装
2、获取安装包
我用的是thrift-0.2.0-incubating.tar.gz版本,有更高的版本可根据自己的需要下载
3、安装
1、解压
这一步,习惯Linux的人群,都应该不陌生
tar zxvf thrift-0.2.0-incubating.tar.gz
2、./bootstrap.sh
3、编译
./configure(时间不是很长)
4、make(时间稍微有点长)
5、install
这一步需要有超级用户的权限
sudo make install
4、安装完成之后,输入thrift之后,如果出现thrift的输入帮助,就说明,thrift已经安装成功
***Thrift简单使用***
以CPP和Erlang交互编程为例
1、进入/thrift-0.2.0/tutorial文件
2、启动Erlang服务器
thrift -r -gen erl tutorial.thrift
编译成功之后,就会出现gen-erl文件夹
进入erl文件夹,启动./server.sh
进入erl shell中,输入命令server:start().至此,erlang服务器端已经启动
3、启动CPP客户端
进入cpp文件夹
使用make进行编译
./CppClient 启动cpp客户端
4、出现计算结果后,表明,erlang和cpp的交互编程已经成功。
ps:要确保服务器端和客户端的socket端口一致