stringtranslate.com

Ahorro Apache

Thrift es un IDL ( lenguaje de definición de interfaz ) y un protocolo de comunicación binario [2] utilizado para definir y crear servicios para lenguajes de programación . [3] Fue desarrollado por Facebook . Desde 2020, es un proyecto de código abierto de la Apache Software Foundation .

Utiliza un marco de llamada a procedimiento remoto (RPC) y combina una pila de software con un motor de generación de código para crear servicios multiplataforma . Thrift puede conectar aplicaciones escritas en una variedad de lenguajes y marcos, incluidos ActionScript , C , C++ , [4] C# , [5] Cocoa , Delphi , Erlang , Go , Haskell , Java , JavaScript , Objective-C , OCaml , Perl , PHP , Python , Ruby , Elixir , Rust , Scala , Smalltalk y Swift . [6] La implementación se describió en un documento técnico de abril de 2007 publicado por Facebook, ahora alojado en Apache. [7] [8]

Arquitectura

La arquitectura cliente/servidor de la API Apache Thrift

Thrift incluye una pila completa para crear clientes y servidores. [9] La parte superior es código generado a partir de la definición de Thrift. A partir de este archivo, los servicios generan códigos de cliente y procesador. A diferencia de los tipos integrados, las estructuras de datos creadas se envían como resultado del código generado. La capa de protocolo y transporte son parte de la biblioteca de tiempo de ejecución . Con Thrift, es posible definir un servicio y cambiar el protocolo y el transporte sin tener que volver a compilar el código. Además de la parte del cliente, Thrift incluye infraestructura de servidor, como servidores bloqueantes, no bloqueantes y multiproceso . La parte de E/S subyacente de la pila se implementa de forma diferente para los distintos lenguajes de programación. [9]

Thrift admite varios protocolos: [9]

Los transportes soportados son:

Thrift también proporciona una serie de servidores, que son:

Thrift está escrito en C++, pero puede crear código para otros lenguajes de programación. Para crear un servicio Thrift, hay que escribir archivos Thrift que lo describan, generar el código en el lenguaje de destino, escribir código para iniciar el servidor y llamarlo desde el cliente. Un ejemplo de un archivo de descripción de este tipo:

enum PhoneType { CASA , TRABAJO , MÓVIL , OTRO }      struct Phone { 1 : i32 id , 2 : string número , 3 : PhoneType tipo }           servicio PhoneService { Teléfono findById ( 1 : i32 id ), lista < Teléfono > findAll ( ) }        

Thrift generará el código a partir de esta información descriptiva. Por ejemplo, en Java, PhoneTypeestará enumdentro de la Phoneclase.

Véase también

Referencias

  1. ^ "Apache Thrift - Descargas" . Consultado el 27 de septiembre de 2024 .
  2. ^ "Instalación y uso de Apache Cassandra con Java Parte 4 (Cliente Thrift)". Sodeso – Soluciones de desarrollo de software. Archivado desde el original el 31 de marzo de 2022. Consultado el 30 de marzo de 2011. Thrift es un proyecto independiente de Apache que es un protocolo de comunicación binario .
  3. ^ Prunicki, Andrew. "Apache Thrift: Introducción". Object Computing . Archivado desde el original el 23 de julio de 2011. Consultado el 11 de abril de 2011. Mediante la generación de código, Thrift crea un conjunto de archivos que luego se pueden utilizar para crear clientes y/o servidores.
  4. ^ "ThriftRequirements". Apache Software Foundation . Archivado desde el original el 26 de febrero de 2024. Consultado el 22 de junio de 2024 .{{cite web}}: CS1 maint: unfit URL (link)
  5. ^ Fred Potter, Using Thrift with Cappuccino Archivado el 12 de agosto de 2011 en Wayback Machine , el blog posterously luscious de parallel48, 10 de junio de 2010.
  6. ^ Andrew Prunicki. "Apache Thrift: Generación de código". Computación de objetos . Archivado desde el original el 23 de julio de 2011. Consultado el 12 de abril de 2011 .
  7. ^ Mark Slee, Aditya Agarwal, Marc Kwiatkowski, Thrift: Implementación de servicios escalables en varios idiomas
  8. ^ "LibraryFeatures". Apache Software Foundation . 11 de julio de 2019. Archivado desde el original el 3 de mayo de 2024. Consultado el 21 de abril de 2016 .
  9. ^ abc Andrew Prunicki. "Apache Thrift: Introducción". Computación de objetos . Archivado desde el original el 23 de julio de 2011. Consultado el 11 de abril de 2011 .
  10. ^ Skelton, Steven (3 de agosto de 2013). "Registro de solicitudes de Thrift para desarrolladores". stevenskelton.ca . Archivado desde el original el 24 de enero de 2024. Consultado el 3 de julio de 2014 .

Enlaces externos