zl程序教程

您现在的位置是:首页 >  其他

当前栏目

thrift说明和测试

测试 说明 thrift
2023-09-14 09:04:36 时间

1下载:http://www.apache.org/dyn/closer.cgi?path=/thrift/0.9.2/thrift-0.9.2.exe  

2 创建 :demoHello.thrift 

namespace java xdg.luozhonghua.thrift.demo
service  HelloWorldService {
  string sayHello(1:string username)
}

3:命令:  E:\thrift thrift -r -gen java ./demoHello.thrift

 

4:结果:          gen-java



目录:


Thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发。它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml 等等编程语言间无缝结合的、高效的服务。

Thrift最初由facebook开发,07年四月开放源码,08年5月进入apache孵化器。thrift允许你定义一个简单的定义文件中的数据类型和服务接口。以作为输入文件,编译器生成代码用来方便地生成RPC客户端和服务器通信的无缝跨编程语言。

官网地址:thrift.apache.org

推荐值得一看的文章:


2.如果自己编译lib包,把下载的压缩包解压到X:盘,然后在X:\thrift-0.8.0\lib\java 目录下运行ant进行自动编译,会在X:\thrift-0.8.0\lib\java\build\ 目录下看到编译好的lib包:libthrift-0.8.0.jar

[三]、基本概念

1.数据类型

基本类型: bool:布尔值,true 或 false,对应 Java 的 boolean byte:8 位有符号整数,对应 Java 的 byte i16:16 位有符号整数,对应 Java 的 short i32:32 位有符号整数,对应 Java 的 int i64:64 位有符号整数,对应 Java 的 long double:64 位浮点数,对应 Java 的 double string:utf-8编码的字符串,对应 Java 的 String

将生成的HelloWorldService.java 文件copy到自己测试的工程中,我的工程是用maven构建的,故在pom.xml中增加如下内容:


简单的单线程服务模型,一般用于测试。

编写服务端server代码:HelloServerDemo.java


4.TThreadPoolServer 服务模型

线程池服务模型,使用标准的阻塞式IO,预先创建一组线程处理请求。

编写服务端代码:HelloServerDemo.java


客户端Client代码和之前的一样,只要数据传输的协议一致即可,客户端测试成功,结果如下:


5.TNonblockingServer 服务模型

使用非阻塞式IO,服务端和客户端需要指定 TFramedTransport 数据传输的方式。

编写服务端代码:HelloServerDemo.java


TProcessor tprocessor = new HelloWorldService.Processor lt;HelloWorldService.Iface gt;(

客户端代码和上面 4 中的类似,只要注意传输协议一致以及指定传输方式为TFramedTransport。

7.异步客户端

编写服务端代码:HelloServerDemo.java


Thrift源码解析--TBinaryProtocol 本文为原创:http://www.cnblogs.com/leehfly/p/4958206.html,未经许可禁止转载。 关于Tprotocol层都是一些通信协议,个人感觉内容较大,很难分类描述清楚。