Thrift

✍ dations ◷ 2025-12-10 11:43:56 #自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

相关

  • 弱电相互作用在粒子物理学中,弱电相互作用是电磁作用与弱相互作用的统一描述,而这两种作用都是自然界中四种已知基本力。虽然在日常的低能量情况下,电磁作用与弱作用存在很大的差异,然而在超
  • 罗特布拉特约瑟夫·罗特布拉特(英语:Joseph Rotblat,1908年11月4日-2005年8月31日),波兰裔英国物理学家、社会活动家。1938年获华沙大学博士学位。第二次世界大战爆发后移居英国,1939年在利物
  • 己型肝炎己型肝炎又称F型肝炎(Hepatitis F),1994年由Deka等人报告提出。当时认为是非甲、非乙、非丙、非戊型的新型肝炎。后已确认为一种遗传变异的乙肝病毒。
  • ʐ浊卷舌擦音是辅音的一种,用于一些语言口语中。它在国际音标中的符号是⟨ʐ⟩,在X-SAMPA中的符号则是⟨z`⟩。该音为卷舌音,其国际音标符号也是由相应的齿龈音——浊齿龈擦音符
  • 膨胀宇宙的远景有物理宇宙学家指出,宇宙的未来很可能为继续膨胀。如果事实如此,宇宙将因其膨胀而继续冷却,导致达到不足以维持生命的温度。因此,膨胀宇宙的未来又称为大冻结。膨胀宇宙的未来将
  • 克山县克山县是黑龙江省齐齐哈尔市下辖的一个县。原称查霍勒屯(蒙语水鹳鸟之意)及三站。一说因境内有座死火山两峰对峙形如城阙,相互克忌,称二克山(现在克东县城北)而得名。但据《黑龙江
  • 无形文化遗产韩国重要无形文化遗产是韩国政府1964年以来由官方指定保护的无形文化遗产。1964年12月7日,宗庙祭礼乐成为第一个被列入重要无形文化遗产名单的无形文化。1995年,韩国文化财产
  • 联合技术联合技术公司(英文:United Technologies Corporation)是美国第22大制造商,主要经营项目包括飞机发动机、直升机、空调系统、燃料电池、电梯、滚梯、防火与安全设备、建筑设备和
  • 传染性单核白血球增多症传染性单核白血球增多症(英语:Infectious mononucleosis,缩写“IM”,别名mono、glandular fever、Pfeiffer's disease、Filatov's disease)是一种由EB病毒造成的传染病。大部分人
  • 凯洱凯洱(1980年-),本名Karl Dominik,他在中国,一个会说中文的外国演员。凯洱生于波兰,居住过很多的地方,英国伦敦,伯灵顿,美国纽约,加拿大多伦多,澳大利亚悉尼,日本筑波,东京,美国洛杉矶,中国上