Thrift

✍ dations ◷ 2025-12-09 12:06:15 #自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

相关

  • 美国人美国人,是世界上对于与美国有关的人士的指称,通常是指美国公民、美国国民,或者祖先、直系尊亲属是美国公民或国民的其他地区人士。依据美国公民出生地原则,一般来说,出生于美国各
  • 外星生命外星生命指存在于地球以外的生命体。这个概念囊括了简单的细菌到具有高度智慧的“外星人”。研究和测试关于外星生命猜想的学科被称作地外生物学或天体生物学。自从20世纪中
  • 泛基因组学泛基因组是为描述一个物种基因组而提出的概念,指同一细菌物种中所有菌株中所有基因的集合,而不单纯以某个菌株为一个物种的全基因组。会需要使用泛基因组的原因是水平基因转移
  • 赫伯特·布朗赫伯特·查尔斯·布朗(英语:Herbert Charles Brown,1912年5月22日-2004年12月19日),乌克兰裔美籍犹太人化学家,1979年因将硼化合物用于有机合成之中而与格奥尔格·维蒂希分享诺贝尔
  • 自愿协助自杀(英语:Assisted Suicide)是指在另一个人的协助下自杀。 该术语有时特指“医生辅助自杀(Physician-Assisted Suicide)”,指由医生或其他医疗保健提供者所协助的自杀。如果
  • 颗石藻钙板金藻(coccolithophores)又名球石藻、颗石藻,属于定鞭藻门(Haptophyta)、钙板金藻科、钙板金藻属(Gephyrocapsa),是海洋中的一种单细胞植物,广泛分布于海洋中。钙板金藻是真核微藻
  • 松球松球,亦称球果、松塔,是属松柏门植物具有的,包含生殖结构的植物组织。大家熟悉木质锥锥孔产生种子。产生花粉的雄性锥体通常是草本的,甚至在完全成熟时也不那么明显。锥体的单个
  • 集沙群海葵毒素岩沙海葵毒素(英语:Palytoxin,又称沙群海葵毒素,或简称为海葵毒素)含有129个碳原子,64个手性中心。白色粉末,无固定熔点,加热至300℃炭化。是一类从沙群海葵科岩沙海葵中提取的水溶
  • font color=white马来西亚/font马来西亚大学列表如下:所有坐标的地图 - OSM 所有坐标的地图 - Google 所有上至200个坐标的地图 - Bing3°08′17″N 101°36′25″E / 3.1379367°N 101.6070017°E / 3.137
  • 主要星系目录主要星系目录(Principal Galaxies Catalogue,PGC)是是深空天体目录之一,出版于1989年。PGC星表列出了73,197个星系及其历元B1950.0和J2000.0的赤道坐标,以及与其它星表的交叉识别