Thrift

✍ dations ◷ 2025-11-24 17:50:25 #自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

相关

  • 哈拉尔德·楚尔·豪森哈拉尔德·楚尔·豪森(德语:Harald zur Hausen,1936年3月11日-),德国医学科学家与荣誉退休教授,主要研究领域为病毒学,2008年诺贝尔生理学或医学奖得主之一,其于1970年代研判人类乳突
  • 诺曼底王朝本条目是分类中的文章诺曼底王朝(1066年-1135年;英语:House of Normandy)是英格兰的一个王朝,共有四位诺曼底家族的国王先后统治英格兰,统治时间由征服王威廉之后的1066年开始,直至
  • 可逆反应可逆反应(英语:reversible reaction)是指通常在同一条件下正反应方向和逆反应方向均能进行的化学反应,例如:生成物变为反应物的速率小到可以忽略的反应则称做不可逆反应。事实上,
  • 埃松省埃松省(法语:Essonne)是法国一个省份,属于法兰西岛大区,编号91。埃松河流经该省。省名和河名都源自高卢河流女神的名字Exona。埃松省建于1968年1月1日。此前是塞纳-瓦兹省的南部
  • 洁净煤科技洁净煤科技(Clean coal technology)是许多设法要降低煤对环境影响(英语:environmental impact of coal煤對環境負面影響)并且减缓全球气候变迁的科技的总称。煤当作燃料使用时,会
  • 南青冈科参见正文南青冈科也叫南山毛榉科,只有一属—南青冈属,包括约35种,都是生长在南半球的乔木,分布在智利、阿根廷、澳大利亚、新西兰、新几内亚和新喀里多尼亚等地。亦曾分布于南极
  • 新竹影像博物馆坐标:24°48′18″N 120°58′11″E / 24.804907°N 120.969603°E / 24.804907; 120.969603新竹市文化局影像博物馆(英语:Image Museum of Hsinchu City)位于台湾新竹市,于1933
  • 英法挚诚协定英法协约,又名挚诚协定(英语:Entente cordiale),是指1904年4月8日英国和法国签订的一系列协定,它标志着两国停止关于争夺海外殖民地的冲突而开始合作对抗新崛起的德国的威胁。在协
  • 西德广播公司西德广播公司(德语:Westdeutscher Rundfunk)是位于德国科隆的一个公共广播电视公司,也是德国公共广播联盟的九个加盟公司之一。播出地区是北莱茵-威斯特法伦州。
  • 平面三角形分子构型化学中,平面三角形分子构型描述了一个分子中,三个原子分别和同一个原子键结,三个原子形成一三角形,另一个原子在三角形中心,四个原子共平面的现象。。理想的平面三角形分子构型中