Thrift

✍ dations ◷ 2025-11-20 15:48:34 #自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

相关

  • 依附理论依附理论(英语:attachment theory)是一种心理学、演化、动物行为学理论,旨在探讨“人际关系”:二或多个个体间的感情纽带。依附理论最重要的原则是,幼童因为社会与情感需求,而至少
  • 绝对零度绝对零度(英语:absolute zero)是热力学的最低温度,是粒子动能低到量子力学最低点时物质的温度。绝对零度是仅存于理论的下限值,其热力学温标写成K,等于摄氏温标零下273.15度(即−27
  • 安体舒通螺内酯(英语:spironolactone),商品名有安体舒通、Aldactone等,是一种常用于治疗心衰、肝硬化、胃病等引发的积液的利尿药。此药也用于治疗高血压、补充后仍无改善的低血钾,以及女
  • 体外人工授精体外人工受孕(英语:In vitro fertilization,缩写IVF; artificial fertilization),是将卵子与精子取出,在人为操作下进行体外受精,并培养成胚胎,再将胚胎植回母体内,整个过程真正在试
  • 1490年重要事件重要人物
  • 双曲线在数学中,双曲线(英语:hyperbola;希腊语:ὑπερβολή,意思是超过、超出)是定义为平面交截直角圆锥面的两半的一类圆锥曲线。它还可以定义为与两个固定的点(称为焦点)的距离差是
  • 山 翀山翀(1969年-),汉族,中华人民共和国演员、政治人物,中国歌剧舞剧院一级演员。中国共产党党员,第十一届全国政协委员。2008年,当选第十一届全国政协委员,代表中华全国青年联合会,分入第
  • 里斯本的圣安多尼印第安人; 截肢者; 动物; barrenness; 巴西; elderly people; faith in the Blessed Sacrament; fishermen; Franciscan Custody of the Holy Land; harvests; horses; lost
  • 景芝景芝酒业,全称山东景芝酒业股份有限公司(英语:Shandong Jingzhi Liquor Co.,Ltd),原名山东景芝酒厂,是中国的一家酿酒公司,总部位于山东省潍坊市安丘市景芝镇。酒厂所在地潍坊“景
  • 塔蓝山猪笼草塔蓝山猪笼草(学名:)是苏门答腊特有的热带食虫植物。其生长于海拔1800米至2500米的高地山地森林中。其种加词“”来源于塔蓝山的名称及拉丁文词尾“”,意为“来自塔蓝山”。虽然