thrift系列 - 快速入门
来源:互联网 发布:文主席万寿无疆知乎 编辑:程序博客网 时间:2024/04/28 03:09
Thrift是当前流行的RPC框架之一,它有强大的代码生成引擎,可以跨语言,轻松解决程序间的通信问题。
本文旨在帮助大家快速入门,若想深入原理,请参见thrift官网:http://thrift.apache.org/。(大家都很忙,少说废话)
2.下载windows版的IDL compiler
访问地址:http://www.apache.org/dyn/closer.cgi?path=/thrift/0.9.3/thrift-0.9.3.exe,在打开的页面中,任选一个资源下载。
下载完成后,假设我把thrift-0.9.3.exe文件移到"F:\test\thrift\bin"(你想移到哪儿你随意) 这个文件夹下。
3.定义接口文件
新建一个名为test.thrift的文件。以下是该文件里的内容:
namespace java test.thrift_testservice TestService { string getStruct(1: i32 num,2: string name)}这就是一个很简单的接口文件。thrift的引擎(此处你可以理解为thrift-0.9.3.exe),就要利用test.thrift生成你指定的语言的代码。这个接口有两个参数,一个是32位的整数,一个是一个字符串,返回值的类型也是一个字符串。关于接口文件定义的方式,请参见下一篇文章《thrift类型定义》。
4.利用接口文件生成代码
打开windows的命令行(这个你不要问我)。切换到"F:\test\thrift\bin"(第2步的时候说过)
使用命令:thrift-0.9.3.exe -r --gen java test.thrift
打开"F:\test\thrift\bin"这个目录,你会发现有一个名为"gen-java"的文件夹,该文件夹下就是生成的java代码。
5.搭建maven环境
利用你的Java IDE构建一个maven工程。这里是pom.xml中需要添加的内容:
<dependency><groupId>org.apache.thrift</groupId><artifactId>libthrift</artifactId><version>0.9.3</version></dependency>这里面有thrift运行时所需要的所有依赖jar。
注意,请把gen-java文件夹下的代码粘贴到工程中去!
6.java版demo
首先把首先实现TestService接口:
package test.thrift_test;import org.apache.thrift.TException;import test.thrift_test.TestService.Iface;//我们定义的test.thrift的接口的具体实现class TestServiceHandler implements Iface{public String getStruct(int num, String name) throws TException {return name + num;}}
以下是Server端的示例代码:
package test.thrift_test;import org.apache.thrift.server.TServer;import org.apache.thrift.server.TServer.Args;import org.apache.thrift.server.TSimpleServer;import org.apache.thrift.transport.TServerSocket;import org.apache.thrift.transport.TServerTransport;import org.apache.thrift.transport.TTransportException;public class Server {public static void main( String[] args ){ try { TestService.Processor processor = new TestService.Processor(new TestServiceHandler()); TServerTransport serverTransport = new TServerSocket(9090);TServer server = new TSimpleServer(new Args(serverTransport).processor(processor));server.serve(); } catch (TTransportException e) {e.printStackTrace();} }}
以下是Client端的示例代码:
package test.thrift_test;import org.apache.thrift.TException;import org.apache.thrift.protocol.TBinaryProtocol;import org.apache.thrift.protocol.TProtocol;import org.apache.thrift.transport.TSocket;import org.apache.thrift.transport.TTransport;import org.apache.thrift.transport.TTransportException;public class Client {public static void main(String[] args) {TTransport transport = new TSocket("localhost", 9090);try {transport.open();TProtocol protocol = new TBinaryProtocol(transport);TestService.Client client = new TestService.Client(protocol);String result = client.getStruct(123, "test");System.out.println(result);transport.close();} catch (TTransportException e) {e.printStackTrace();} catch (TException e) {e.printStackTrace();}}}
启动的时候,先运行 Server.java,再运行Client.java。正常情况下,控制台输出结果为:test123
本文内容参考如下:
【1】http://thrift.apache.org/
注意:
如您发现本文档中有明显错误的地方,
或者您发现本文档中引用了他人的资料而未进行说明时,请联系我进行更正。
转载或使用本文档时,请作醒目说明。
必要时请联系作者,否则将追究相应的法律责任。
note:
If you find this document with any error ,
Or if you find any illegal citations , please contact me correct.
Reprint or use of this document,Please explain for striking.
Please contact the author if necessary, or they will pursue the corresponding legal responsibility.
- thrift系列 - 快速入门
- Thrift 快速入门
- Thrift快速入门
- ubuntu下Thrift快速入门
- 使用Java快速入门Thrift
- 【thrift】 thrift入门
- 快速入门系列
- thrift 入门
- Thrift入门
- thrift入门
- Thrift 入门
- Thrift入门
- Thrift 入门
- Thrift入门
- Thrift 入门
- Thrift入门
- Thrift入门
- RPC学习----Thrift快速入门和Java简单示例
- JS实现监听事件,添加删除显示控件
- Android中SyncTask的使用
- jQuery生成json对象
- Where is the best place to put <script> tags in HTML markup?
- 网络图片框架
- thrift系列 - 快速入门
- C语言 程序代码编写规范
- 04-树6 Complete Binary Search Tree
- 为何网站首页排名总是比内页排名好
- 比较重量
- 在一个空ASP.NET Web项目上创建一个ASP.NET Web API 2.0应用(转载)
- 关于类中域使用基本类型还是包装类的纠结
- eclipse修改Android默认签名文件(debug.keystore)
- Nodejs学习笔记(四)与MySQL交互