Thrift

✍ dations ◷ 2025-12-03 09:10:26 #自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

相关

  • 遗传漂变遗传漂变,或基因漂变(genetic drift),是指种群中基因库在代际发生随机改变的一种现象。由于任何一个个体的生存与繁殖都受到随机因素影响,繁殖过程可看做一种抽样,子代携带的等位
  • 吡咯啉吡咯啉(Pyrroline),又称二氢吡咯,是五元的部分不饱和含氮杂环化合物的统称,它包括以下三个异构体:1-吡咯啉为一个环状的亚胺。2-吡咯啉为环状的烯胺。3-吡咯啉为环状的不饱和胺。
  • 望谟县望谟县是中华人民共和国贵州省黔西南布依族苗族自治州下属的一个县。布依语标准音以望谟县复兴镇的语音为基础。望谟县下辖3个街道办事处、11个镇、1个民族乡:王母街道、平洞
  • 芙蓉世芙蓉世(Furongian)是寒武纪第四个也是最后一个世,始于497百万年前,终于485.4百万年前。芙蓉世位于寒武纪苗岭世(英语:Miaolingian)以及早奥陶世(英语:Lower Ordovician)特马豆克期之间
  • 桫椤科Alsophila Amphicosmia Cnemidaria Cormophyllum Cnemidaria Cyathea桫椤属 Fourniera Gymnosphaera Hemitelia Nephelea Schizocaena Sphaeropteris Thysanobotrya Trichi
  • 云浮云浮市(官方音译:Yunfu,邮政式拼音:Wanfow)是中华人民共和国广东省下辖的地级市,位于广东省西部。市境北靠肇庆市,东邻佛山市,南接江门市、阳江市、茂名市,西界广西壮族自治区梧州市
  • 谢尔盖·斯塔尼舍夫谢尔盖·迪米特里耶维奇·斯塔尼舍夫(Sergey Dmitrievich Stanishev,保加利亚语:Сергей Дмитриевич Станишев),1966年5月5日生于苏联乌克兰赫尔松市,保加
  • 参赛国欧洲歌唱大赛自1956年创办以来,共有52个国家曾经参加比赛,其中有26个国家曾经获得冠军。欧洲歌唱大赛由欧洲广播联盟组织,每年由一个成员国负责主办。各参赛国的联盟成员广播公
  • 月湖区月湖区是中国江西省鹰潭市的一个市辖区。月湖区位于鹰潭市中部、信江中下游,地理位置跨北纬28.11°至28.18°、东经116.57°至117.7°。东边、南边与贵溪市余家乡相邻,北边信
  • 王替夫王替夫(1911年6月29日-2001年7月13日),满洲国外交官,曾拯救12000名犹太人。为驻德国柏林公使馆低阶外交官“公使馆理事官补”,1939年,纳粹德国外交部长里宾特洛甫因执行“排犹政策