Apache Thrift 介绍
一 点睛
Thrift 是一歀基于 CS 架构的 RPC 框架,最初由 Facebook 研发,2008 年转入 Apache 组织。开发人员可以使用 Thrift 提供的 IDL(接口定义语言)来定义数据结构、异常和接口。IDL 的功能类似 Protobuf 的 message,但 message 只能用于定义数据结构,因此 IDL 比 message 功能更加强大。编写完 IDL 后,就可以通过 Thrift 提供的工具生成各种语言的数据结构(比如 Java 中的类,C 语言中的结构体等)、异常和接口文件。
Thrift 与 Protobuf 相比,除了 IDL 比 messge 更加丰富外,Thrift 还有另外一个巨大的优势,Protobuf 本身只用于消息(message)的编码和解码。也就是说,Protobuf 只能存储 RPC 中的数据,但不能传输数据(必须借助于 Netty、Socket 等通信技术才能传输);而 Thrift 不仅能存储数据,还能直接对数据进行网络传输。
二 Thrift 工作模式
服务端的工作模式 |
简介 |
TSimpleServer |
单线程服务模式,通常在测试时使用 |
TThreadPoolServer |
1 阻塞式I/O 2 多线程服务模式 |
TNonblockingServer |
1 非阻塞式I/O 2 多线程服务模式 3 需要结合使用 TFramedThransport 传输方式 |
三 Thrift 传输方式
传输方式 |
简介 |
TSocket |
使用阻塞式 socket 传输数据 |
TFramedThransport |
1 使用阻塞式工作模式 2 以 frame 为单位传输数据 |
TFileTransport |
以文件形式进行传输数据 |
TMemoryThransport |
使用内存I/O 形式传输 |
TZlibThransport |
1 使用 zlib 压缩数据 2 需要与其他传输方式联合使用 3 不支持 Java |
四 Thrift 传输协议
传输协议 |
简介 |
TBinaryProtocol |
二进制格式 |
TCompactProtocol |
压缩格式 |
TJSONNProtocol |
JSON 格式 |
TSimpleJSONProtocol |
1 JSON 格式 2 提供 JSON 只写协议,适用于通过脚本语言解析 |
TDebugProtocol |
使用易读的文本格式,便于 debug |
五 Thrift 下载
1 下载地址
http://archive.apache.org/dist/thrift
2 下载版本
windows 下的 0.11.0
3 将下载的文件配置到环境变量的 PATH 下
4 查看版本,验证是否配置成功
C:\Users\>thrift -version
Thrift version 0.11.0
Apache Thrift 介绍相关推荐
- Apache Thrift - 可伸缩的跨语言服务开发框架
简介: Apache Thrift 是 Facebook 实现的一种高效的.支持多种编程语言的远程服务调用的框架.本文将从 Java 开发人员角度详细介绍 Apache Thrift 的架构.开发和部 ...
- Windows 10 Visual Studio 2017 安装配置 Apache Thrift (C++)
最近需要使用Thrift,所以在网上看了很多资料,不过很多教程都不够详细完整,导致我花了不少时间安装配置.在这里我把我配置的过程写下来和大家分享. 1 介绍 Apache Thrift 是一个跨语言的 ...
- Apache Thrift使用简介
Apache Thrift 是 Facebook 实现的一种高效的.支持多种编程语言的远程服务调用的框架.和其它RPC框架相比,它主要具有如下连个特点: 高性能. 它采用的是二进制序列化,并且用的是长 ...
- 基于Apache Thrift的公路涵洞数据交互实现原理
基于Apache Thrift的公路涵洞数据交互实现原理 Apache Thrift简介 Apache Thrift(以下简称为"Thrift") 是 Facebook 实现的一种 ...
- Apache Thrift快速入门教程
Thrift是一种跨语言RPC框架,最初是在Facebook上开发的,现在作为Apache项目开源. 这篇文章将描述如何以不同的模式(例如阻塞,非阻塞和异步)编写Thrift服务和客户端. (我觉得后 ...
- thrift linux java,Apache Thrift环境配置
安装Thrift的官方文档地址: 当我看到windows安装需要Cygwin或MinGW时,我就直接放弃在windows中配置的想法了,直接打开虚拟机用CentOS进行安装,使用一堆命令安装毕竟比wi ...
- 由浅入深了解Thrift(一)——Thrift介绍与用法
相关示例代码见:http://download.csdn.net/detail/hjx_1000/8374829 一. Thrift简单介绍 1.1. Thrift是什么?能做什么? Thrift ...
- 【网络】RPC通信之Apache Thrift
文章目录 概述 RPC的概念 Thrift架构设计 一.Transports 1. Transports接口 2.End Point Transports 3.Layered Transports 4 ...
- Apache Thrift 官方JAVA教程
Apache Thrift 官方JAVA教程 本文只是讲如何按照官方教程跑起来代码,并不会对代码细节进行介绍 配置Apache Thrift环境可以查看:Apache Thrift配置环境 这个环境仅 ...
最新文章
- 算法学习:后缀数组(SA)
- 吴恩达“机器学习”——学习笔记六
- rust高级矿场_高级 Rust 所有权管理
- Cygwin复制,粘贴 直接用鼠标在黑框上选区即可,选区结束就已经复制了。cygwin里面Ctrl+V是不能粘贴的,用Shfit+ Insert(键盘上下左右方向键的上面) Cygwin 下切换目
- dump java 内存_Java如何dump对象的内存
- C语言判断树是否为求和树(附完整源码)
- python控制流代码怎么用_Python学习笔记控制流的元素
- Netapp日志出现auth.dc.trace.DCConnection.errorMsg:error报错
- 一个基于 SpringBoot 开源的小说和漫画在线阅读网站,简洁大方、强烈推荐
- Tsung压力测试工具的搭建和使用,配置。
- 【图像分割】基于matlab GUI二值化+灰白质医学影像分割【含Matlab源码 184期】
- android防全家桶html5,不要再用全家桶浏览器了!五款轻量级安卓浏览器,体积小,功能强...
- ryuyan 方差分析_R语言之方差分析篇
- 机器人电焊电流电压怎么调_焊电焊电流怎么调节,调多少合适?
- 半孔板设计需要注意细节问题
- Python爬虫学习之路——python IED工具介绍(一)
- 最详细的 K8S 学习笔记总结(2021最新版)
- 使用go搭建一个简单的web服务器(3)验证表单的输入
- Flask项目能打包为单个exe文件运行?掌握原理后居然如此简单!
- 晨星评选的2020年获奖基金怎么样?