Что такое RPC framework и Apache Thrift?


101

Мне нужно изучить Apache Thrift для университетского проекта. Как говорится в этом руководстве , это RPC-фреймворк, и это был единственный документ, который я смог найти для Thrift, кроме их документации .

Может ли кто-нибудь сказать мне, что такое структура RPC и как это связано с Apache Thrift?

Ответы:


159

Рамки RPC в целом представляет собой набор инструментов , которые позволяют программисту вызывать фрагмент кода в удаленном процессе, будь то на другой машине или просто другой процесс на той же машине.

В конкретном случае Apache Thrift мы говорим о платформе, которая должна быть эффективной и доступной как для платформ ОС, так и для языков программирования. Кроме того, у вас есть некоторая гибкость в отношении транспорта (например, сокетов, каналов и т. Д.) И протоколов (двоичный, JSON, даже сжатый), а также некоторые дополнительные параметры, такие как поддержка SSL или SASL.

Например , вы можете настроить сервер на машине Linux, написанный на C ++, который предлагает некоторые услуги миру через протокол на основе JSON через HTTP. Эта служба может быть вызвана клиентской программой, написанной на Python, работающей на машине Windows. Код и для сервера, и для клиента генерируется из файла Thrift IDL. Чтобы запустить его, вам в основном нужно добавить только предполагаемую логику программы и собрать все части вместе.

Единственным лучшим справочником по Apache Thrift по-прежнему является технический документ Apache Thrift . Несмотря на то, что некоторые детали немного устарели, основные концепции все еще актуальны. Еще одно хорошее чтение - «Пропавшее руководство» Дивакера Гупты и, наконец, не в последнюю очередь готовящаяся к выходу книга Рэнди Абернети .

Новичкам я бы рекомендовал начать с Apache Thrift. набора руководств , в этих примерах показано множество основных функций. Если у вас возникнут вопросы, вы можете задать их здесь, в SO, или в списках рассылки Thrift.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.