Thrift

✍ dations ◷ 2025-06-30 08:57:22 #自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

相关

  • 光敏感感光性亦称光敏感度或光敏性(英语:Photosensitivity),是指一个物体在接收光子(多数时候为可见光)时的作用量。在医药学领域,该属于被用作指代皮肤对于光的不正常反应,通常又分为光照
  • 3β-雄烷二醇3β-雄烷二醇(英语:3β-Androstanediol,缩写3β-diol,全称5α-雄烷-3β,17β-二醇,5α-androstane-3β,17β-diol)是一种内源性的甾体激素,有较强的雌激素活性。3β-雄烷二醇可由脱
  • 伯里克利时代伯里克利时代是指古希腊的一个历史时期,其始于波希战争,终于伯里克利离世或伯罗奔尼撒战争结束,大约由前480年至前404年。在同一时期大批在政治、哲学、建筑、雕塑、历史以及文
  • 膝关节膝,俗称膝盖,为位于大小腿之间的连接部位。膝的主要内部组成结构为半月板以及四条韧带。半月板为膝内部股骨下端和胫骨上端之间的接连处所垫的一块新月形的纤维软骨组织,作用是
  • 斯科舍板块斯科舍板块是一个大洋板块,北与南美洲板块相接,东与南桑威奇微板块相接,南和西则与南极洲板块接壤。斯科舍板块的北部和南部边界是转换边界,其东界与南桑威奇板块之间是离散边界
  • 伊丽莎白·泰勒伊丽莎白·泰勒女爵士,DBE(英语:Elizabeth Rosemond Taylor,DBE,1932年2月27日-2011年3月23日),英国及美国著名电影演员,在华人地区被享有“玉女”和“玉婆”的称号。她在电影生涯得
  • 消防局消防局是于19世纪中期已经存在的澳门消防机构,于1883年大幅度地重新组织,在过去亦经历过数次的改革和发展,至今有7间消防局(站),组织成为一支拥有805名消防员的纪律部队,而直至目前
  • 黔中黔中郡,中国古代的郡。战国楚置。辖境约当今湖南省西部和贵州省东部,后地入秦。治所在临沅县(今湖南常德市);一说治沅陵县(今湖南沅陵县西南)。辖境扩大,有今湖南省沅江、澧水流域,湖
  • 死或生系列死或生(日语:デッド・オア・アライヴ,英语:Dead or Alive,港台译作“生死格斗”)是日本游戏公司光荣特库摩控股旗下Team Ninja小组所制作,以3D格斗游戏为主题的一系列作品。自1996
  • 空袭日本空袭日本是第二次世界大战期间同盟国对日本领土及殖民地展开的多次战略轰炸行动。日本帝国本土由帝国陆军航空队和海军航空本部负责保卫,空中防卫包括使用战斗机及高射炮拦截