----------------------php
Thrift是Facebook的一个开源项目,主要是一个跨语言的服务开发框架。它有一个代码生成器来对它所定义的IDL定义文件本身主动生成服务代码框架。用户仅仅要在其以前进行二次开发便可,对于底层的RPC通信等都是透明的。眼下它支持的语言有C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk, and OCaml.java
可以在http://incubator.apache.org/thrift/download/去下载它的最新版本号,眼下最新版本号是0.5.0。另外你也可以check出它的svn,方法例如如下:python
svn co http://svn.apache.org/repos/asf/thrift/trunk thriftc++
cd thriftapache
在它的jira中看到,它的0.6版本号也很是快就会出来了。ubuntu
个人本本是debian 6.0,假设用ubuntu的兄弟安装方法也是同样的ruby
多线程
这时thrift的代码生成器和一些库文件就生成好了。框架
你可以用例如如下命令看一下thrift的版本号信息socket
在thrift源码文件夹有一个叫tutorial的文件夹,进行当中后执行thrift命令生成对应的服务代码:
执行完以后会在当前文件夹看到一个gen-cpp文件夹,当中就是thrfit命令生成的代码
这时你cd到tutorial/cpp文件夹,执行make,生成对应的CppServer与CppClient程式。
这时你可以用./CppServer执行服务端,让其监听一个特定的port
这时你可以用./CppClient执行client程式,让其去链接服务端,调用其所相应的服务。默认调用后会输出例如如下信息:
假设你的终端中也出现了如上的信息,恭喜你,执行成功了。假设在执行CppServer的时候找不到动态库,看看你是否是执行了make install,假设执行了,再执行一下sudo ldconfig试试。再用ldd CppServer看一下它有没有找到对应的动态库了。
这边有两个IDL文件,内容例如如下:
在tutorial/cpp文件夹中的CppServer.cpp是它的服务代码,主要分红两部分,
一部分是main方法用于作一些初始化与服务的启动,第二部分对于IDL中定义的接口的实现
还有一部分例如如下:
在tutorial文件夹中有其余代码的样例,如erl,java,python,perl,ruby等。
1. http://incubator.apache.org/thrift/
2. http://incubator.apache.org/thrift/static/thrift-20070401.pdf