Thrift

✍ dations ◷ 2025-12-04 14:49:57 #自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

相关

  • 泻药泻药指促进粪便排出的药物,一般用来治疗便秘。另外灌肠作为一种机械治疗便秘的方法,有时也归入泻药类。
  • 蓖麻毒蛋白结构 / ECOD结构 / ECOD蓖麻毒蛋白(英语:Ricin)是从蓖麻籽中所萃取出来的一种毒性蛋白质,几乎对所有的真核细胞都具有杀伤作用。蓖麻毒蛋白的纯品是一种白色粉末或结晶体,无味,可
  • 决定性问题在可计算性理论与计算复杂性理论中,所谓的决定性问题(Decision problem)是一个在某些形式系统回答是或否的问题。例如:“给两个数字x与y,x是否可以整除y?”便是决定性问题,此问题可
  • 爱尔兰大饥荒爱尔兰大饥荒(an Gorta Mór),俗称马铃薯饥荒,是一场发生于1845年至1852年间的饥荒。在这7年的时间内,英国统治下的爱尔兰人口锐减了将近四分之一;这个数目除了饿死,病死者,也包括了
  • 直接甲醇燃料电池直接甲醇燃料电池 (Direct-methanol fuel cells,简称 DMFCs) 是质子交换膜燃料电池的一种,使用甲醇(分子式:CH3OH)作为发电的燃料。直接甲醇燃料电池主要的优点,在于甲醇便于携带
  • 蒲葵蒲葵(学名:Livistona chinensis)又名扇叶葵,是棕榈科蒲葵属的植物。常绿乔木,单干直立粗大,老茎中部较粗,表面有少量棕皮和叶鞘包被。叶大,簇生于茎顶,叶柄粗壮,具相互分离的尖锐倒刺,
  • 星卫娱乐台星卫娱乐台(英语:Star Entertainment Channel, SEC)是福斯国际电视网(Fox International Channels, FIC)在台湾的高清频道。频道开播就提供超过六成的高清节目。星卫娱乐台由新闻
  • 王大成 (分子生物物理学家)王大成(1949年1月-),四川成都人,中国分子生物物理学家,中国科学院生物物理研究所研究员。生于四川成都。1963年毕业于中国科学技术大学生物物理系。 2005年当选为中国科学院院士。
  • 缰猪齿鱼缰猪齿鱼,为辐鳍鱼纲鲈形目隆头鱼亚目隆头鱼科的其中一种,分布于澳洲东北部海域,栖息深度可达60米,栖息珊瑚礁区,生活习性不明。 维基物种中有关缰猪齿鱼的数据
  • 长生郡上图中的数字分别是1.一宫町 2.睦沢町 3.长生村 4.白子町 5.长柄町 6.长南町。绿:现在;黄:明治时期;浅绿:后来编入的区域;淡黄:后来归他郡所属的区域长生郡(日语:長生郡/ちょうせいぐ