Ahorro apache

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 8 de febrero de 2021; las comprobaciones requieren 5 ediciones .
Ahorro apache
Tipo de Marco RPC
Desarrollador Fundación de software Apache
Escrito en C++
Sistema operativo Software multiplataforma
Primera edición 14 de abril de 2012 [1]
ultima versión 0.16.0 (9 de febrero de 2022 ) ( 2022-02-09 )
Licencia Licencia Apache 2.0
Sitio web ahorro.apache.org
 Archivos multimedia en Wikimedia Commons

Thrift (del  inglés  -  "thrift", pronunciado como [θrift] ) es un lenguaje de descripción de interfaz que se usa para definir y crear servicios para diferentes lenguajes de programación. Es un marco para la llamada a procedimiento remoto (RPC). Utilizado por Facebook como un servicio escalable de desarrollo multilingüe. Combina un pipeline con un motor de generación de código para desarrollar servicios que funcionan de forma más o menos eficiente y sencilla entre lenguajes como [2] C# , C++ , Cappuccino , Cocoa , Delphi , Erlang , Go , Haskell , Java , OCaml , Perl , PHP , Python , Ruby , Rust , Smalltalk y JavaScript [3] . En pocas palabras, Thrift es un protocolo de comunicación binario . Desde abril de 2007, se ha desarrollado como un proyecto de código abierto de la organización sin fines de lucro Apache Software Foundation .

Arquitectura

Thrift incluye una tubería de software lista para usar, que consta de seis capas, para trabajar con las partes del cliente y del servidor. El nivel superior es el código de descripción Thrift generado. Los servicios generan código de cliente y servidor a partir de él. A diferencia de los tipos integrados, la estructura de datos generada se devuelve como resultado en el código generado. Las capas de protocolo y transporte son parte de la biblioteca de tiempo de ejecución . En Thrift es posible seleccionar servicios y cambiar el protocolo y el transporte sin volver a compilar el código. Además del lado del cliente, Thrift incluye una infraestructura de servidor para la comunicación y el transporte de protocolos en blocking, non-blockingy multi-threadedservidores. El marco de la capa de E/S se implementa de manera diferente para diferentes idiomas.

Protocolos soportados

Transportadores admitidos

Servidores soportados

Beneficios

[cuatro]

Ahorro apache Búferes de protocolo
Desarrollador facebook, apache Google
Idiomas admitidos C++, C#, Dart, D, Go, Haskell, Java, JavaScript, Python, PHP, XSD, Ruby, Perl, Objective C,

Erlang, rubí, Smalltalk, OCaml, Haskell

C++, C#, Dart, Go, Java, JavaScript, Python, PHP, Objective C, Ruby
Formatos salientes Binario, JSON Binario
tipos simples bool
byte
enteros de 16/32/64 bits cadena
doble
secuencia de
bytes
map<t1,t2>
list<t>
set<t>
bool
enteros de 32/64 bits
flotan secuencia de bytes de cadena
doble propiedades repetidas funcionan como listas


constantes No
tipo compuesto estructura mensaje
Excepciones No
Documentación problemático Bueno
Licencia apache estilo BSD
Extensiones de tipo compuesto No

Creando un Servicio de Ahorro

Thrift está escrito en C++, sin embargo, el código se puede escribir en varios idiomas. Para crear un servicio Thrift, primero debe escribir archivos Thrift que lo describan, luego generar código en el idioma de salida y especificar los comandos para iniciar el servidor y luego llamarlos en el cliente. Aquí hay un archivo de descripción de ejemplo:

enum tipo de teléfono { casa , TRABAJO , MÓVIL , OTRO } teléfono estructura { 1 : identificación i32 , 2 : número de cadena , 3 : Tipo de teléfono _ }

Thrift generará código a partir de este archivo de descripción, por ejemplo, en Java. PhoneTypeserá una enumeración simple (enum)dentro del POJO para la clase Teléfono.

Literatura

  • Randy Abernethy. La guía del programador de Apache Thrift. - Compañía de Publicaciones Manning, 2015. - ISBN 978-1-61729-181-4 .

Notas

  1. https://projects.apache.org/json/projects/thrift.json
  2. Apache Thrift: lenguaje y matriz de características . Consultado el 11 de marzo de 2019. Archivado desde el original el 8 de marzo de 2019.
  3. Apache Thrift-Javascript . thrift.apache.org. Consultado el 13 de octubre de 2016. Archivado desde el original el 9 de octubre de 2016.
  4. Thrift vs Protocol Bufffers vs JSON Archivado el 7 de noviembre de 2015 en Wayback Machine , MirthLab LLC, 2009

Enlaces