thrift总结

本文涉及的产品
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
简介: 定义: Apache Thrift是一个facebook建立的RPC框架,现在是一个Apache的顶级项目。Thrift允许通过一个跨语言的定义文件的方式定义数据类型和服务接口,【这个文件】作为【RPC】客户端和服务器通信的标准 thrift安装: ①安装依赖:$ yum install au...

定义:

Apache Thrift是一个facebook建立的RPC框架,现在是一个Apache的顶级项目。Thrift允许通过一个跨语言的定义文件的方式定义数据类型和服务接口,【这个文件】作为【RPC】客户端和服务器通信的标准

thrift安装:


①安装依赖:$ yum install automake libtool flex bison pkgconfig gcc-c++ boost-devel libevent-devel zlib-devel python-devel ruby-devel 
②安装thrift:
下载:$ wget http://archive.apache.org/dist/thrift/0.9.0/thrift-0.9.0.tar.gz 
解压:$ tar zxvf thrift-0.9.0 
运行:$ cd thrift-0.9.0 
$ ./bootstrap.sh 
$ ./configure 
$ make 
$ make install 
③安装handle基类:
$cd ./contrib/fb303/
$./bootstrap.sh 
$./configure
$make
$make install 

④验证:$ thrift -version 
thrift version 0.9.0

thrift常用命令:
thrift -r -gen cpp UserFileIdentify.thrift (c++)
thrift -r -gen java UserFileIdentify.thrift (java)
thrift -r -gen java UserFileIdentify.thrift (php)

一个栗子(在10.0.0.40下)--------------------------------

dev@DEV101:~/pzhang$ rm -rf gen-java
dev@DEV101:~/pzhang$ ls
gen-php UserFileIdentify.thrift
dev@DEV101:~/pzhang$ thrift -r -gen java UserFileIdentify.thrift 
dev@DEV101:~/pzhang$ ls
gen-java gen-php UserFileIdentify.thrift
dev@DEV101:~/pzhang$ cd gen-java/
dev@DEV101:~/pzhang/gen-java$ ls
ReceivedTRT.java UpdateValueByTableThriftService.java

常识概念

(1)基本概念
Thrift中的几个概念:
Server 服务模型
Handler 数据处理接口
Processor 数据处理对象
Protocol 数据传输协议
Transport 数据传输方式

(2)支持的传输格式
TBinaryProtocol – 二进制格式.
TCompactProtocol – 压缩格式
TJSONProtocol – JSON格式
TSimpleJSONProtocol –提供JSON只写协议, 生成的文件很容易通过脚本语言解析。
TDebugProtocol – 使用易懂的可读的文本格式,以便于debug

(3) 支持的通信方式(数据传输方式)(Transport)
TFileTransport:文件(日志)传输类,允许client将文件传给server,允许server将收到的数据写到文件中。
THttpTransport:采用Http传输协议进行数据传输
TSocket:采用TCP Socket进行数据传输
TZlibTransport:压缩后对数据进行传输,或者将收到的数据解压

(4)客户端编写的一般步骤:
1. 创建Transport
2. 创建Protocol方式
3. 基于Transport和Protocol创建Client
4. 运行Client的方法

==========================================一个demo======================================================

 http://files.cnblogs.com/files/bestzhang/helloword.zip

http://www.cnblogs.com/bestzhang/p/6001462.html

 

相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
相关文章
|
网络协议 Java 编译器
Thrift在C++中的使用
Thrift在C++中的使用
Thrift在C++中的使用
|
Java Go Apache
gRPC vs Thrift
远程过程调用(Remote Procedure Call,RPC)服务于分布式架构,本文从分布式构架面临的问题,期望的结果,引出两种比较受关注的RPC框架,并从框架的出身、实现原理、特性、性能等方面做了对比分析,从而给出两者之间的选择建议。
11085 0
|
2月前
|
Java 编译器 测试技术
Thrift
Thrift是一个用于跨语言服务开发的工具,可以轻松实现不同语言间的通信和数据交换 【2月更文挑战第27天】
17 1
|
11月前
|
XML JSON 编解码
Thrift 介绍
Thrift 介绍
130 0
|
JSON Java 编译器
Thrift的日常—协议
Thrift的日常—协议
Thrift的日常—协议
|
分布式计算 数据挖掘 程序员
Thrift简介—续
Thrift简介—续
Thrift简介—续
|
JSON 网络协议 Java
thrift 原理浅析
thrift 原理浅析
278 0
thrift 原理浅析
|
Python 容器
Thrift的接口定义语言IDL
Thrift的接口定义语言IDL
279 0