Thrift
2016-04-21 15:10
211 查看
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客户端和服务器通信的无缝跨编程语言。
1.数据类型
· 基本类型:
o bool:布尔值,true 或 false,对应 Java 的 boolean
o byte:8 位有符号整数,对应 Java 的 byte
o i16:16 位有符号整数,对应 Java 的 short
o i32:32 位有符号整数,对应 Java 的 int
o i64:64 位有符号整数,对应 Java 的 long
o double:64 位浮点数,对应 Java 的 double
o string:utf-8编码的字符串,对应 Java 的 String
· 结构体类型:
o struct:定义公共的对象,类似于 C 语言中的结构体定义,在 Java 中是一个 JavaBean
· 容器类型:
o list:对应 Java 的 ArrayList
o set:对应 Java 的 HashSet
o map:对应 Java 的 HashMap
· 异常类型:
o exception:对应 Java 的 Exception
· 服务类型:
o service:对应服务的类
2.服务端编码基本步骤:
· 实现服务处理接口impl
· 创建TProcessor
· 创建TServerTransport
· 创建TProtocol
· 创建TServer
· 启动Server
3.客户端编码基本步骤:
· 创建Transport
· 创建TProtocol
· 基于TTransport和TProtocol创建 Client
· 调用Client的相应方法
4.数据传输协议
· TBinaryProtocol : 二进制格式.
· TCompactProtocol : 压缩格式
· TJSONProtocol : JSON格式
· TSimpleJSONProtocol : 提供JSON只写协议, 生成的文件很容易通过脚本语言解析
tips:客户端和服务端的协议要一致
Thrift最初由facebook开发,07年四月开放源码,08年5月进入apache孵化器。thrift允许你定义一个简单的定义文件中的数据类型和服务接口。以作为输入文件,编译器生成代码用来方便地生成RPC客户端和服务器通信的无缝跨编程语言。
1.数据类型
· 基本类型:
o bool:布尔值,true 或 false,对应 Java 的 boolean
o byte:8 位有符号整数,对应 Java 的 byte
o i16:16 位有符号整数,对应 Java 的 short
o i32:32 位有符号整数,对应 Java 的 int
o i64:64 位有符号整数,对应 Java 的 long
o double:64 位浮点数,对应 Java 的 double
o string:utf-8编码的字符串,对应 Java 的 String
· 结构体类型:
o struct:定义公共的对象,类似于 C 语言中的结构体定义,在 Java 中是一个 JavaBean
· 容器类型:
o list:对应 Java 的 ArrayList
o set:对应 Java 的 HashSet
o map:对应 Java 的 HashMap
· 异常类型:
o exception:对应 Java 的 Exception
· 服务类型:
o service:对应服务的类
2.服务端编码基本步骤:
· 实现服务处理接口impl
· 创建TProcessor
· 创建TServerTransport
· 创建TProtocol
· 创建TServer
· 启动Server
3.客户端编码基本步骤:
· 创建Transport
· 创建TProtocol
· 基于TTransport和TProtocol创建 Client
· 调用Client的相应方法
4.数据传输协议
· TBinaryProtocol : 二进制格式.
· TCompactProtocol : 压缩格式
· TJSONProtocol : JSON格式
· TSimpleJSONProtocol : 提供JSON只写协议, 生成的文件很容易通过脚本语言解析
tips:客户端和服务端的协议要一致
相关文章推荐
- 集群和负载均衡和分布式
- POJ 1167 The Buses
- C#界面设计之复选按钮与单选按钮的使用实例
- saleae逻辑分析仪使用分享
- eclipse新建安卓项目低于4.0,去除v7依赖包的方法
- hdu-1878 欧拉回路
- MYSQL的慢查询两个方法
- (java)关于List中对象实现Comparable接口的例子
- render layout: false
- 关于emjoy表情在android5.x以上系统触发jni错误的修改(基于cocos2dx2.1.5修改)
- Swift中宏#define的替代方案
- okhttp总结
- OIO和NIO区别
- Android 身份证、车牌号验证工具类
- 微信公众号第三方开发之二获取预授权码(pre_auth_code)
- 智能化硬件
- paip.自适应网页设计 跟 响应式 设计的区别跟原理and实践总结
- 使用CURL下载远程文件保存到服务器
- Qt槽和信号参数
- 2016.4 半期 堆+贪心 【UASCO 2009 OPEN GOLD-2】工作安排