多语言协作工具thrift实例讲解
1背景
如果讨论每个语言的特点,相信各个语言的程序员都能说得天花乱坠,争的面红耳赤。但是在如今大互联网时代,没有哪种语言是银弹,各种语言都各有所长。为了截取各家之长,各种跨语言通信框架涌现出来,thrift就是其中的一个典型代表。
thrift是基于socket或者http协议来进行通信的,所以适合分布式的服务器之间进行通信。众所周知,php中是无法使内存常驻的,java、c、c++之类的就可以;对于处理html页面,php擅长,对于数据库连接java更擅长,对于高并发处理node.js erlang更擅长。thrift将各者结合起来,做到扬长避短,而且支持的语言要远远多于刚才提到几种。
关于thrift的入门介绍可以参见http://www.javabloger.com/article/apache-thrift-architecture.html
2安装下面以java和php为例介绍一下thrift的使用。
首先从https://dist.apache.org/repos/dist/release/thrift/0.9.0/thrift-0.9.0.tar.gz 下载最新的thrift源码和在windows下的工具https://dist.apache.org/repos/dist/release/thrift/0.9.0/thrift-0.9.0.exe。将thrift-0.9.0.tar.gz解压到任意目录,在里面新建目录bin,将thrift-0.9.0.exe拷贝到这个目录,重命名为thrift.exe,并且将这个bin目录加入环境变量,方便以后从命令行。
进入thrift解压目录下的lib/java目录,执行ant命令(关于ant的配置,请自行搜索,当然也可以下载随后给出的ant生成物),在生成的build目录中的libthrift-0.9.0.jar和build/lib目录中的所有jar包备份出来,方便建立java项目时引用。
注意php需要配置apc支持,如果没有安装,请先安装之。
3脚本编写新建thrift数据定义文件test.txt内容如下:
图5.1
在thrift目录下新建package.php,编码如下:
1array(2) { [0]=> string(3) "aaa" [1]=> string(3) "bbb" }
以上java和php代码已上传到csdn http://download.csdn.net/detail/yunnysunny/5097464。