Thrift

✍ dations ◷ 2025-12-08 21:57:05 #自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

相关

  • 粉色面包霉菌粉色面包霉菌(Neurospora crassa,又译红面包霉菌等)是一种属于子囊菌门(Ascomycota)的霉菌。由于生长容易,且拥有单倍体世代,使隐性遗传可直接展现,进而使遗传学分析较为简易,因此是
  • 虫媒病毒性脑炎虫媒病毒性脑炎(Arbovirus encephalitis)指虫媒病毒(英语:arbovirus infection)导致的脑炎。美国发现有多种虫媒病毒性脑炎。这样的病包括:医学导航: 病毒病病毒(蛋白质)/分类cutn
  • 信息科学信息学,旧称情报学(日本人翻译),主要是指以信息为研究对象,利用计算机及其程序设计等技术为研究工具来分析问题、解决问题的学问,是以扩展人类的信息功能为主要目标的一门综合性学
  • 法律制度法律制度(台湾及大陆地区也称法制),是指一个国家或地区的所有法律原则和规则的总称。法律制度从宏观角度来说,与法系的概念比较接近。而法律多元主义是多种法律制度存在于一个人
  • 马斯特里赫特期马斯特里赫特期又称馬斯垂克期、麦斯里希特期。(英语:Maastrichtian)是白垩纪,亦即中生代最后的一个时期,年代大约位于72.1–66百万年前。在本时期末期发生了白垩纪-第三纪灭绝事
  • 拉普拉塔坐标:34°56′S 57°57′W / 34.933°S 57.950°W / -34.933; -57.950拉普拉塔(西班牙语:La Plata)位于阿根廷东部大西洋沿岸,是布宜诺斯艾利斯省的首府,人口574,369(2001年)。拉普
  • 国立交通大学管理学院国立交通大学是校本部位于台湾新竹市的大专院校,为中华民国高教深耕计划遴选出参与全球链接全校型计划的四所大学之一,前身为上海徐家汇南洋公学,1958年在台复校,与新竹科学工业
  • 罗德岛设计学院罗德岛设计学院(英语:Rhode Island School of Design,缩写:RISD /ˈrɪzdiː/))是一所位于美国罗德岛州首府普罗维登斯的私立艺术学院。该学院成立于1877年,位于普罗维登斯学院山(Co
  • 罗克维尔罗克维尔 (英语:Rockville, Maryland,也被称为"石家庄")是美国马里兰州蒙哥马里县的一座城市,大约位于县的中央。2000年人口47,388人,2006年人口为59,114人,是该州第二大城市和蒙哥
  • 萨瓦语萨瓦语又称萨伏伊语(法语:Savoyard;意大利语:savoiardo)是法兰克-普罗旺斯语的一种方言,使用者位于法国的萨瓦省和上萨瓦省,瑞士的瓦莱州,意大利的瓦莱达奥斯塔大区的奥斯塔。萨瓦语