Reference:http://www.ibm.com/developerworks/cn/java/j-lo-apachethrift/

http://jacksongblack.blog.51cto.com/6378693/1175661

第一点

首先,说明一下windows环境下配置到运行的简单例子。

1. 官方下载thrift的exe文件;

2. 配置电脑的环境变量path,把thrift.exe所在的文件夹位置加入进去;

3. 如果配置成功,在cmd,命令thrift会有所提示。

到目前为止,电脑的环境配置完毕。

4. 在thrift文件所在的路径下执行thrift -r --gen rb hello.thrift。其中hello.thrift为项目的thrift文件。执行的结果就是:生成一个叫做gen-java的文件夹,里面就是你定义的接口。

此时,thrift文件转换完成。

第二点

Iface  eg. implements Hello.Iface

Client  eg. Hello.Client

Processor  eg. Hello.Processor

1. 用户实现的业务逻辑

2. 根据thrift定义的服务接口描述文件生成的客户端和服务器端代码框架

3. 根据thrift文件生成代码实现数据的读写操作

4. Thrift的传输体系、协议以及底层I/O通信

第三点(详细讲解:使用Thrift可以很方便的定义一个服务并且选择不同的传输协议传输层而不用重新生成代码)

1. 协议:Thrift可以让用户选择客户端和服务器端之间传输通信协议的类型,在传输协议上总体上划分为文本和二进制传输协议,为节约带宽,提高传输效率,一般情况下使用二进制类型的传输协议为多数,有时还会使用基于文本类型的协议,这需要根据项目/产品中的实际需求。常用的协议有以下几种:

  TBinaryProtocol - 二进制编码格式进行数据传输

  TCompactProtocol - 高效率的、密集的二进制编码格式进行数据传输

     TCompactProtocol.Factory proFactory = new TCompactProtocol.Factory();(Server)

     TCompactProtocol protocol = new TCompactProtocol(transport); (client)

  TJSONProtocol -使用JSON的数据编码协议进行数据传输

  TJSONProtocol =只提供JSON只写的协议,适用于通过脚本语言解析

2. 传输层:常用的传输层有以下几种

  TSocket -使用阻塞式I/O进行传输,是最常见的模式

  TFramedTransport - 使用非阻塞方式,按块的大小进行传输,类似于Java中NIO

  TNonblocingTransport - 使用非阻塞方式,用于构建异步客户端

3. 服务器端类型

  TSimpleServer - 单线程服务器端使用标准的阻塞式I/O

  TThreadPoolExecutor - 多线程服务器端使用标准的阻塞式I/O

  TNonblockingServer - 多线程服务器使用非阻塞式的I/O

4. 部署结构

HelloServiceClient->Hello.java(Hello.thrift, common libs: libthrift.jar, slf4j-api.jar)->HelloServiceServer.java(ServiceImplementation, helloServiceImpl.java)

客户端和服务器端部署时,需要用到公共的jar包和java文件

【thrift】初识thrift的更多相关文章

  1. 【thrift】thrift详解

    转载:http://zheming.wang/thrift-rpcxiang-jie.html Thrift Thrift是一个跨语言的服务部署框架,最初由Facebook于2007年开发,2008年 ...

  2. Thrift架构~thrift中间语言的认识(只有它什么都不是,它才有可能什么都是)

    中间语言是我为thrift语言起的名字,呵呵,为什么叫它中间语言呢,其实意思很简单,就是说,它只是一个过程,而不是一个最终的结果,而结果需要这个中间过程的影响,没有中间语言,结果语言也不能产生,在th ...

  3. 【thrift】thrift入门初探--thrift安装及java入门实例

    转载:https://www.cnblogs.com/fingerboy/p/6424248.html 公司的一些平台服务框架底层封装了thrift提供服务,最近项目不是很紧,于是研究了一下,刚刚入门 ...

  4. Java使用Thrift,Thrift结构体定义

    1.Thrift定义文件,Thrift常见的数据类型 1.基本类型(括号内为对应的Java类型): bool(boolean): 布尔类型(TRUE or FALSE) byte(byte): 8位带 ...

  5. 使用Vue和thrift建立前后端交互的demo

    初识thrift thrift 是 facebook 于2007年开发的一款跨平台 RPC(Remote Procedure Call) 软件框架, 它可以在多种平台上进行无缝交互,数据传输使用二进制 ...

  6. Thrift架构~目录

    回到占占推荐博客索引 概念相关 thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发.它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Python, PHP, Ru ...

  7. Thrift简单实践

    0.什么是RPC RPC(Remote Procedure Call - 远程过程调用),是通过网络从远程计算机上请求服务,而不需要了解底层网路技术的细节.简单点说,就是像调用本地服务(方法)一样调用 ...

  8. Thrift:Quick Start

    Thrift 快速开始 1 Thrift 介绍 目前流行的服务调用方式有很多种,例如基于 SOAP 消息格式的 Web Service,基于 JSON 消息格式的 RESTful 服务等.其中所用到的 ...

  9. thrift的lua实现

    最近要进行系统升级,后台的数据是根据城市区分的.担心新系统的稳定性及新数据的准确性,计划部分城市采用新接口.接口的入参里没有城市信息,只有经纬度坐标,需要调用一个thrift接口来根据坐标获取城市信息 ...

随机推荐

  1. 分组password算法

    代换,S盒.扩散和混淆,这些概念构成了分组password学的基础. 假设明文和密文的分组长度都为n比特,则明文的每个分组都有2n个可能的取值; 代换: 为使加密运算可逆(即解密运算可行),明文的每个 ...

  2. 【Excle数据透视表】如何水平并排显示报表筛选区域的字段

    原始效果 目标效果 解决方案 设置数据透视表"在报表区域筛选显示字段"为"水平并排" 步骤 方法① 单击数据透视表任意单元格→数据透视表工具→分析→选项→布局和 ...

  3. 北大BBS2008年毕业生晒工资

    http://www.amznz.com/19/快消类: 宝洁:本7200.研8200.博9700,均14个月,另有800交通补助,marketing每9个月 涨20%-30%. 玛氏:月薪10000 ...

  4. java精确除法计算,四舍五入 Java问题通用解决代码

    主要用java.math.BigDecimal工具类实现,想要了解BigDecimal类可以看java api   正式版:        public static Double divide() ...

  5. C#中静态方法和非静态方法的区别

    静态方法和非静态方法的区别: 1.静态方法不需要类实例化就可以调用,反之非静态方法需要实例化后才能调用: 2.静态方法只能访问静态成员和方法,非静态方法都可以访问: 3.静态方法不能标记为overri ...

  6. Android下的Handler

    coder是没必要重复造轮子的,写博客亦如此.因为工作忙,学的东西比较多,没法自己来写博客.自己想了个思路就是,把别人的技术精华拿过来,从简到难,慢慢学习.最后提炼,得到自己想学的东西即可,等有时间了 ...

  7. xml格式发送

    1. namespace xml格式发送 { /// <summary> /// 实体转Xml,Xml转实体类 /// </summary> /// <typeparam ...

  8. 【HttpClient4.5中文教程】【第一章 :基础】1.1运行请求(二)

    很多其它HttpClient4.5中文教程请查看:点击打开链接 ==================================================================== ...

  9. 最常用的几个python库--学习引导

    核心库 1.NumPy 当我们用python来处理科学计算任务时,不可避免的要用到来自SciPy  Stack的帮助.SciPy Stack是一个专为python中科学计算而设计的软件包,注意不要将它 ...

  10. Maven环境下搭建SSH框架之Spring整合Struts2

    © 版权声明:本文为博主原创文章,转载请注明出处 1.搭建环境 Struts2:2.5.10 Spring:4.3.8.RELEASE 注意:其他版本在某些特性的使用上可能稍微存在差别 2.准备工作 ...