O que é estrutura RPC e Apache Thrift?


100

eu preciso aprender Apache Thrift para um projeto de universidade. Como este tutorial diz, é uma estrutura RPC e foi o único documento que consegui encontrar para o Thrift além de sua documentação .

Alguém pode me dizer o que é um framework RPC e como isso se relaciona com o Apache Thrift?

Respostas:


158

Uma estrutura RPC em geral é um conjunto de ferramentas que permite ao programador chamar um trecho de código em um processo remoto, seja em uma máquina diferente ou apenas outro processo na mesma máquina.

No caso específico do Apache Thrift , falamos sobre uma estrutura projetada para ser eficiente e disponível em plataformas de sistema operacional e linguagens de programação. Além disso, você tem alguma flexibilidade em relação a transportes (como sockets, pipes, etc) e protocolos (binário, JSON, mesmo compactado), além de mais algumas opções como suporte SSL ou SASL.

Por exemplo , você pode configurar um servidor em uma máquina Linux, escrito em C ++, que oferece algum serviço ao mundo por meio de um protocolo baseado em JSON sobre HTTP. Este serviço pode ser chamado por um programa cliente escrito em Python, rodando em uma máquina Windows. O código para servidor e cliente é gerado a partir de um arquivo Thrift IDL. Para fazê-lo funcionar, você basicamente precisa adicionar apenas a lógica de programa pretendida e colocar todas as peças juntas.

A melhor referência para o Apache Thrift ainda é o Whitepaper do Apache Thrift . Embora um pouco desatualizados em alguns detalhes, os conceitos subjacentes ainda são válidos. Outra boa leitura é "Missing Guide" de Diwaker Gupta e, por último, não menos importante, o próximo livro de Randy Abernethy .

Para iniciantes, eu recomendaria começar com o pacote de tutoriais do Apache Thrift , esses exemplos mostram muitos dos recursos principais. Se você tiver dúvidas, pode perguntar aqui no SO ou nas listas de discussão do Thrift.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.