¿Qué es el marco RPC y Apache Thrift?


100

Necesito aprender Apache Thrift para un proyecto universitario. Como dice este tutorial , es un marco RPC, y fue el único documento que pude encontrar para Thrift además de su documentación .

¿Alguien puede decirme qué es un marco RPC y cómo se relaciona esto con Apache Thrift?

Respuestas:


158

Un marco RPC en general es un conjunto de herramientas que permiten al programador llamar a un fragmento de código en un proceso remoto, ya sea en una máquina diferente o simplemente en otro proceso en la misma máquina.

En el caso particular de Apache Thrift , hablamos de un marco diseñado para ser eficiente y disponible tanto en plataformas de sistemas operativos como en lenguajes de programación. Además, tiene cierta flexibilidad con respecto a los transportes (como sockets, tuberías, etc.) y protocolos (binarios, JSON, incluso comprimidos), además de algunas opciones más como soporte SSL o SASL.

Por ejemplo , puede configurar un servidor en una máquina Linux, escrito en C ++, que ofrece algún servicio al mundo a través de un protocolo basado en JSON sobre HTTP. Este servicio puede ser llamado por un programa cliente escrito en Python, que se ejecuta en una máquina con Windows. El código tanto para el servidor como para el cliente se genera a partir de un archivo Thrift IDL. Para que funcione, básicamente tiene que agregar solo la lógica del programa previsto y unir todas las piezas.

La mejor referencia para Apache Thrift sigue siendo el documento técnico de Apache Thrift . Aunque un poco desactualizado en algunos de los detalles, los conceptos subyacentes siguen siendo válidos. Otra buena lectura es "Missing Guide" de Diwaker Gupta , y por último no menos importante, el próximo libro de Randy Abernethy .

Para los principiantes, recomendaría comenzar con la suite de tutoriales Apache Thrift , estos ejemplos muestran muchas de las características principales. Si tiene preguntas, puede hacerlas aquí en SO o en las listas de correo de Thrift.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.