thrift说明和测试
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层都是一些通信协议,个人感觉内容较大,很难分类描述清楚。
相关文章
- 【联宝Jetson NANO开发套件1】开箱测试(有图有真相)
- Omapl38+国产FPGA开发板——开发案例使用测试资料说明(下)
- 一套基于docker的多实例部署测试脚手架
- 测试说明
- 1.使用Apache Jmeter对应用压力测试学习与实践
- linux内核发包工具,Linux内核发包工具pktgen测试方案说明「建议收藏」
- 宝藏级13 条自动化测试框架设计原则
- 【Flask】当企业级项目在大多数视图登录性能优化以及测试覆盖的详细解决方案
- 性能测试|Jmeter压测脚本录制与编写
- Microsoft Edge浏览器内置功能Math Solver正在测试中
- 号称「国内首个人工智能测试品牌」,班墨科技要做的是独家创新