Thrift

✍ dations ◷ 2024-09-20 14:52:00 #自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

相关

  • 血管舒张剂血管舒张是指在血管壁的平滑肌松弛下,令体内血管扩阔的情况。由于空间增大让血液流过,这会降低了血压。它的相反过程称为血管收缩。血管舒张可以自然产生或经由血管舒张剂引起
  • 拉斯金美术学校拉斯金美术学校(英语:Ruskin School of Drawing & Fine Art,也简称Ruskin),是牛津大学下的一个艺术学校。 有两个办学点,提供研究生和本科生教育。历史可追溯到1871年约翰·拉斯金
  • 自由式滑雪自由式滑雪自1992年阿尔贝维尔冬季奥运会起成为奥运会正式比赛项目之一。1988年冬季奥运会自由式滑雪作为表演项目,分雪上技巧(Moguls)、空中技巧(Aerials)和雪上芭蕾(ballet)三个
  • 广东菜粤菜,是中国八大菜系之一,也是四大中国菜系,亦称广东菜、广府菜,是指广府民系的代表性菜肴。值得注意的是,虽然客家民系和潮汕民系也生活在广东省境内,但客家菜和潮州菜(潮汕菜)均不
  • 爱尔达电视爱尔达科技股份有限公司(英语:ELTA Technology Co., Ltd.,简称:ELTA TV)是由台达电子创办人郑崇华转投资的爱尔达科技所设立的电视台。2008年10月21日正式在中华电信MOD开台。 目
  • 拍卖美元拍卖美元(英语:Dollar auction)是经济学家马丁·舒比克提出的一种非零和对抗博弈,目的是展现传统理性选择理论中的悖论,其中玩家在博弈(游戏)中作出看似理性的选择时,反而会被迫作出
  • XYY-三体XYY三体是一种人类男性的性染色体疾病,正常的男性性染色体是XY,而XYY三体者多出一条Y染色体,所以又称“超雄综合症”(super-male syndrome)。此病在各种性染色体疾病中比较常见,在
  • 环磷酸鸟苷环磷酸鸟苷(cGMP或cyclic GMP或3'-5'-cyclic guanosine monophosphate),跟环磷酸腺苷(cAMP)一样,是一种具有细胞内信息传递作用的第二信使(second messengers),但两者的生物效应却恰
  • 女同性恋文学女同性恋文学(Lesbian literature)为有关女性同性情欲书写,以及女性同志身份认同的文学作品,其类型涵盖诗歌、散文、戏剧,以及各种文类的小说。历史上有名的女性同性情爱文学作品
  • 自由震荡自由震荡(英语:Free Oscillation),又称为地球自由震荡,是一种地震学上用驻波概念来解释地震波的方式。有别于传统的地震学把地震波以行进波表示法来处理,自由震荡的特点是能够简洁