Thrift

✍ dations ◷ 2024-12-22 23:53:03 #自2013年8月需要澄清文字的条目,应用层协议,数据序列化格式,进程间通信,远端程序呼叫,Facebook软件

Thrift是一种接口描述语言和二进制通讯协议,它被用来定义和创建跨语言的服务。它被当作一个远程过程调用(RPC)框架来使用,是由Facebook为“大规模跨语言服务开发”而开发的。它通过一个代码生成引擎联合了一个软件栈,来创建不同程度的、无缝的跨平台高效服务,可以使用C#、C++(基于POSIX兼容系统)、Cappuccino、Cocoa、Delphi、Erlang、Go、Haskell、Java、Node.js、OCaml、Perl、PHP、Python、Ruby和Smalltalk。虽然它以前是由Facebook开发的,但它现在是Apache软件基金会的开源项目了。该实现被描述在2007年4月的一篇由Facebook发表的技术论文中,该论文现由Apache掌管。

Thrift包含一套完整的栈来创建客户端和服务端程序。顶层部分是由Thrift定义生成的代码。而服务则由这个文件客户端和处理器代码生成。在生成的代码里会创建不同于内建类型的数据结构,并将其作为结果发送。协议和传输层是运行时库的一部分。有了Thrift,就可以定义一个服务或改变通讯和传输协议,而无需重新编译代码。除了客户端部分之外,Thrift还包括服务器基础设施来集成协议和传输,如阻塞、非阻塞及多线程服务器。栈中作为I/O基础的部分对于不同的语言则有不同的实现。

Thrift支持众多通讯协议:

支持的有:

Thrift还提供众多的服务器,包括:

Thrift一些已经明确的优点包括:

Thrift由C++编写,但可以为众多语言创建代码。要创建一个Thrift服务,必须写一些Thrift文件来描述它,为目标语言生成代码,并且写一些代码来启动服务器及从客户端调用它。下面就是一个这样的描述文件的代码示例:

enum PhoneType { HOME, WORK, MOBILE, OTHER}struct Phone { 1: i32 id, 2: string number, 3: PhoneType type}

Thrift将由这个描述信息生成独立的代码。例如,在Java里,PhoneType将是Phone类中一个简单的enum

相关

  • 联合国开发计划署联合国开发计划署(法语:Le Programme des Nations unies pour le développement ; 英语:The United Nations Development Programme,缩写为 PNUD ; UNDP)是世界上最大的负责进
  • 精神分析学精神分析学(英文:Psychoanalysis)或称心理分析学,是于19世纪末期由奥地利神经学家西格蒙德·弗洛伊德的创立的一门学科。当时精神病学普遍受生物学的影响,对于心理现象的构成、发
  • 智慧建筑智能建筑是指以建筑为平台,兼备建筑设备、办公自动化及通信网络系统,集结构、系统、服务、管理及它们之间的最优化组合,为人们提供一个安全、高效、舒适、便利的建筑环境。其主
  • 日本动画协会日本动画协会(日语:一般社団法人日本動画協会,或英语:The Association of Japanese Animations,简称英语:AJA),是按日本的动画业界的意愿,把关联团体联合起来而成立的一个组织,以促进
  • 帕维尔·内德维德帕维尔·内德维德(捷克语:Pavel Nedvěd,1972年8月30日-)生于捷克共和国的海布,世界足坛最佳捷克巨星之一。场上司职中场(左路或中路)。曾效力于捷克的布拉格杜克拉(1991年-92年)、布
  • 奥斯瓦尔多·普格列斯奥斯瓦尔多·普格列斯(Osvaldo Pugliese, 1905年12月2日-1995年7月25日),阿根廷伟大的探戈音乐作曲家,他把探戈音乐的戏剧化提升到了一个巅峰。他的音乐被列为四大探戈音乐代表
  • 新布朗弗雷斯新布朗费尔斯(New Braunfels)是美国的一个城市。位于德克萨斯州科马尔县和瓜达卢佩县。据2010年人口普查,新布朗费尔斯有人口57,740人,和2000年相比增加了58%,2000年时有人口36,4
  • 萨拉热窝事件萨拉热窝事件(德语:Attentat von Sarajevo),又称弗朗茨·斐迪南大公及苏菲,霍恩贝格公爵夫人遇刺案(英语:Assassination of ArchdukeFranz Ferdinand of Austria and Sophie, Duche
  • 滚轴状高积云滚轴状高积云(学名:Altocumulus volutus,缩写: ),是高积云的一种,较为罕见。滚轴状高积云具有滚轴状云的特点:云体独立,水平分布,云身很长,呈管状,通常表现为绕其水平轴线滚动的状态。
  • 联合国和平使者联合国和平使者多半是在艺术、音乐、电影、文学与运动等领域的杰出人士,经过联合国的精心挑选,并同意借由自己的影响力,让世界更关注联合国的工作与各项议题。联合国和平使者最