Thrift

✍ dations ◷ 2025-04-12 07:06:55 #自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

相关

  • 细胞膜细胞膜,又称原生质膜(英语:cell membrane 或 plasma membrane 或 cytoplasmic membrane),为细胞结构中分隔细胞内、外不同介质和组成成分的界面。原生质膜普遍认为由磷脂质双层分
  • 石灰石灰是生石灰的俗称,主要成分是氧化钙(CaO)。把生石灰和水混合产生化学反应,就会产生出熟石灰(消石灰,学名氢氧化钙(Ca(OH)2)。熟石灰在一升水中溶解1.56克,它的饱和溶液称为石灰水,呈
  • 福利中华人民共和国的社会福利在历史上经历过各种变化。中华人民共和国人力资源和社会保障部是负责中华人民共和国社会福利的部门。在80年代中国改革开放之前,中国的社会主义满足
  • 阿龙·切哈诺沃阿龙·切哈诺沃(希伯来文:אהרן צ'חנובר‎,1947年10月1日-),中文名齐揩华,以色列生物学家。由于发现了泛素调解的蛋白质降解,与阿夫拉姆·赫什科、欧文·罗斯一起获得了200
  • 东帝汶独立革命阵线东帝汶独立革命阵线(葡萄牙语:Frente Revolucionária de Timor-Leste Independente),简称革阵(FRETILIN),是东帝汶的一个左翼政党。自1974年至1998年间为争取东帝汶独立之反抗运动
  • 施瓦本汝拉山坐标:48°18′N 9°21′E / 48.3°N 9.35°E / 48.3; 9.35施瓦本汝拉山(德语:Schwäbische Alb、Schwäbischer Jura 或 Schwabenalb;英语:Swabian Jura;法语:Jura souabe)是德国的
  • 恶地恶地(Badlands)或平顶山是指松软沉积岩和富含黏土的土壤大范围的被风和水侵蚀的后的干燥地势。这种地势的特征是陡坡、极稀疏植被、缺少实质性的风化层,以及高密度的引流。恶地
  • 库珀对库柏对(英语:Cooper pair)是指电子结合在一起的状态。一般来说,电子之间都有微小的引力,由此使得电子的能量低于费米能时,电子就会结合在一起,这一能量降低大约是1meV的量级,一般的
  • 姜世晃姜世晃(韩语:강세황;1713年5月21日-1791年1月23日),本贯晋州,字光之(韩语:광지),号豹菴(韩语:표암),朝鲜王朝后期著名文臣,画家。61岁做官,1784年来到北京,以书画受到乾隆帝的称赞。
  • 汉阳峰汉阳峰又名大汉阳峰(与近旁的小汉阳峰相区别),是中国江西省庐山的最高峰,海拔1474米。汉阳峰位于庐山南部,距离庐山风景区的中心牯岭街14公里,毗邻东北侧的小汉阳峰和南面的紫霄峰