Thrift

✍ dations ◷ 2025-12-02 00:27:29 #自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

相关

  • 携带蛋白载体蛋白(英语:carrier protein)简称“载体”,是参与离子、小分子或高分子跨越生物膜进行运输的一类多回旋折叠蛋白质。载体蛋白都是跨膜蛋白,它们能在协助扩散或主动运输过程中
  • 哥伦布市哥伦布(英语:Columbus, Georgia)是美国佐治亚州马斯科吉县县治,2000年人口186,291人。1971年实行县市合一。班宁堡的西半球安全合作学院位于此地。
  • 国家代码国际标准化组织的ISO 3166-1国际标准是ISO 3166的第一部分,有ISO标准国家代码。1974年首次出版。ISO 3166-1旨在为国家、属地、具特殊科学价值地点建立国际认可的代码。代码
  • 后辈后辈、晚辈,可以指后代、子孙,也可以是对社会中无血缘关系而比自己年少者,或者同组织中科层地位相近而比自己资浅者的称呼。对于后辈,有若干不同的称呼法,例如在学徒、剧团之间叫
  • 孤雏泪《雾都孤儿》(英语:Oliver!)是导演卡洛·李在1968年的歌舞片。这部电影是同名音乐舞台剧之电影版本,剧中的音乐词曲均由莱诺·巴特(Lionel Bart)编写。编剧为维农·哈里斯(Vernon H
  • 阁皂山国家森林公园坐标:21°51′51″N 115°38′57″E / 21.86417°N 115.64917°E / 21.86417; 115.64917 阁皂山,或作阁皂山、合皂山,简称阁山,位于中国江西省樟树市(旧清江县东南),以山形如阁,山色
  • 羟甲基戊二酸单酰辅酶A(6-amino-9H-purin-9-yl)-4-hydroxy-3-(phosphonooxy)tetrahydrofuran-2-yl]-3,5,9,21-tetrahydroxy-8,8,21-trimethyl-10,14,19-trioxo-2,4,6-trioxa-18-thia-11,15-diaza-
  • 鞑靼语鞑靼语(鞑靼语:татарча)又称塔塔尔语,属于阿尔泰语系,是鞑靼斯坦地区使用的语言。鞑靼语本来用阿拉伯字母,斯大林时期改用西里尔字母,2001年鞑靼斯坦共和国政府决定改用土耳
  • 史蒂夫·巴特曼事件史蒂夫·巴特曼事件(英语:Steve Bartman incident)发生在2003年10月14日,那天是国家联盟冠军赛的第六战,芝加哥小熊在主场瑞格利球场(Wrigley Field)迎战佛罗里达马林鱼。当时小熊
  • 5-脱氢表甾醇5-脱氢表甾醇(英语:5-Dehydroepisterol,化学式C28H44O)是油菜素类固醇等物质生物合成过程中的中间产物,由C-5甾醇去饱和酶催化表甾醇生成,再通过7-脱氢胆固醇还原酶转化为24-亚甲