Thrift

✍ dations ◷ 2025-11-25 16:23:48 #自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

相关

  • THTerminologia Histologica(TH)是一份细胞生物学和组织学的受控词表,由FCAT(Federative International Committee on Anatomical Terminology(英语:Federative International Commi
  • 睾丸摘除术睾丸切除术,指去除单侧或双侧睾丸的手术。切除双侧睾丸的手术的经常称为双侧睾丸切除手术。睾丸切除术主要适用于睾丸肿瘤、严重睾丸损伤、前列腺癌等。睾丸摘除术通过医学手
  • 哈里斯县哈里斯县(Harris County, Georgia)是位于美国乔治亚州西部的一个县,西邻亚拉巴马州。面积1,225平方公里。根据美国2000年人口普查,共有人口23,695人。县治汉弥尔顿。成立于1827
  • 意外怀孕非预期怀孕(Unintended pregnancies)也称为意外怀孕、非计划怀孕或非期望怀孕,是在受孕时,女方没有预期会怀孕(或是不希望怀孕),却发生的怀孕,没有预期要怀孕的原因可能是时机不宜或
  • 小睾并殖吸虫小睾并殖吸虫(学名:Paragonimus microrchis)为并殖科并殖属的动物。在中国大陆,分布于云南西双版纳等地,营寄生生活,终末宿主家猫、家犬和大白鼠(均为人工感染),寄生于肺以及少数在胸
  • 潍水之战潍水之战是一场在公元前204年,汉军韩信于齐国与西楚联军之间的一场战役,韩信攻破齐都临淄后向东追击田广,项羽命龙且率号称二十万军援之。韩信佯败之后,采取水攻的方法截断齐楚
  • 食醯食醯是朝鲜半岛传统甜米露,通常视作饮料和甜点。其不仅包含发酵的液体成分,还留有一些沉淀的米粒和松子。食醯与甘酒类似,然而酒精含量远不及甘酒。
  • 意大利战役 (第二次世界大战)意大利战役是第二次世界大战盟军深入意大利内陆及包围德军和意大利军的大规模军事行动,作战时间长达1943年到1945年战争结束;参战盟军司令部(英语:AFHQ)策划所有在地中海盟军登陆
  • 虚构时间假说虚构时间假说(英语:phantom time hypothesis)是一个由赫里勃·伊利格(德语:Heribert Illig)提出的历史阴谋论。该阴谋论首次于1991年出版,提出神圣罗马皇帝奥托三世、教宗思维二世
  • 现存天守现存天守指的是日本城郭中保留有江户时代及更早之前修筑的天守的城堡。现存天守之外的天守被称为复原天守、复兴天守或模拟天守。现存天守并不一定是创建当时原貌。有的是经