Thrift

✍ dations ◷ 2025-11-23 18:02: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

相关

  • V01-Y98ICD-10 第二十章:疾病和死亡的外因,即国际疾病与相关健康问题统计分类第十版的第二十个编码分系统(从V01-Y99),其中包括了各种关于疾病及死亡的外在原因,及其分类详情。
  • 芝加哥芝加哥(英语:Chicago),常被当地华人简称为芝城,位于美国中西部,属伊利诺伊州,为库克县县治,东临密歇根湖,辖区内人口272万。芝加哥及其郊区组成的大芝加哥地区,人口超过900万,是美国仅
  • 双光子激发显微镜双光子激发显微镜(英语:Two-photon excitation microscopy)是一种荧光成像技术,可以对活体组织进行深度约1毫米的成像。 它不同于传统的荧光显微镜,其中激发波长短于发射波长,因为
  • 历法循环玛雅历是一套以不同历法与年鉴所组成的系统,为前哥伦布时期中部美洲的玛雅文明所使用。现仍使用于墨西哥的瓦哈卡州、恰帕斯州、韦拉克鲁斯州以及危地马拉高地的玛雅社群中。
  • 阿古拉阿古拉(英语:Agoura)是位于美国加利福尼亚州洛杉矶县的一个非建制地区。该地的面积和人口皆未知。阿古拉的座标为34°08′35″N 118°44′13″W / 34.14306°N 118.73694°W /
  • 长岛会战长岛会战(英语:Battle of Long Island),或称为布鲁克林会战(英语:Battle of Brooklyn),是美国独立战争期间英国与美国之间第一场陆上会战,亦是整场独立战争最大规模的一场战事。会战
  • 加拿大法语加拿大法语(法语:français canadien)主要使用于加拿大。2001年加拿大全国人口调查结果显示,现时约有670万加拿大人以法语作为母语,占全国人口23%。由于种种原因,例如是地理上的隔
  • 瘦金体瘦金书亦称瘦金体、鹤体,楷书的一种,由宋徽宗赵佶(1082年—1135年)所创。宋徽宗赵佶的楷书字体吸收了褚遂良、薛曜、薛稷、柳公权、黄庭坚等人的风格,并创出新意,运笔挺劲犀利。笔
  • 胡安·曼努埃尔·桑托斯胡安·曼努埃尔·桑托斯·卡尔德隆(Juan Manuel Santos Calderón,1951年8月10日-),哥伦比亚政治人物,经济学家,前任哥伦比亚总统,2016年诺贝尔和平奖得主。1951年8月10日,桑托斯在哥
  • 水青冈水青冈(学名:)又名山毛榉,属山毛榉科山毛榉属植物。落叶乔木,高可达25米。卵形叶子,长6-15.5厘米,有疏锯齿;初夏开淡绿色花,雄花序头状,雌花序柄长3-6厘米;壳斗四裂,外被多数细长卷曲毛