Thrift

✍ dations ◷ 2025-05-17 18:08:22 #自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

相关

  • 鼻窦炎鼻窦炎(Sinusitis)是描述发生于鼻窦的炎症。常见症状包含浓厚鼻涕、鼻塞,以及脸部疼痛。其他症状包含发烧、头痛、嗅觉减退、喉咙痛,以及咳嗽。咳嗽会于夜间加剧。严重副作用较
  • 条目肺炎(pneumonia),是指肺部出现发炎的症状,主要是肺泡受到影响。肺炎常见的症状包括有痰的咳嗽、胸痛、发热及呼吸困难。症状可能由轻微到严重不一。特别高龄的长者或新生儿可能
  • 3d2 4s22, 8, 10, 2蒸气压第一:658.8 kJ·mol−1 第二:1309.8 kJ·mol−1 第三:2652.5 kJ·mol−1 (主条目:钛的同位素钛是化学元素,化学符号Ti,原子序数22,是银白色过渡金属,其
  • Mt5f14 6d7 7s2(计算值)2, 8, 18, 32, 32, 15, 2(预测)第一:800.8(估值) kJ·mol−1 第二:1823.6(估值) kJ·mol−1 第三:2904.2(估值) kJ·mol−1 (主条目:鿏的同位素鿏(Meitnerium)是人工
  • 下腔静脉下腔静脉(法语:Inferior vena cava、IVC))位于腹主动脉右侧粗大壁薄的血管即下腔静脉。它的上端穿膈的腔静脉裂孔入右心房,下端于第5腰椎右前方由左右骼总静脉汇合而成。沿途可
  • 近1,200万德意志裔人被由东欧驱逐在第二次世界大战的后期及战争结束时候,数百万德意志公民(不论民族或是否与纳粹德国有联系)以及德意志裔人(不论国籍)被迫从其他欧洲国家迁徙回德国。受到影响的范围包括前德意志
  • 现存无轨电车系统列表,列出世界各城市运营中及已停运的无轨电车系统。注释:1945年亦曾有示范性无轨电车在维多利亚,由英属哥伦比亚电气铁路(英语:British Columbia Electric Railway)
  • 圣伯纳汀诺圣贝纳迪诺县(英文:San Bernardino County)是美国加利福尼亚州东南部的一个县,东邻内华达州和亚利桑那州,东界科罗拉多河。面积52,073平方公里,是美国本土面积最大的县(排除被称为
  • 家族性高胆固醇血症家族性高胆固醇血症(英语:Familial hypercholesterolemia),缩写为FH,是一种遗传性疾病,表现为血液中高胆固醇水平(特别是极高的低密度脂蛋白(LDL)水平)和早期心血管疾病。 由于FH的基
  • 希拉国家森林希拉国家森林(英语:Gila National Forest)是位于新墨西哥州的一座美国国家森林和保护区,建立于1905年,面积2,710,659英亩,是美国的第六大国家森林。