Что такое RPC-инфраструктура и Apache Thrift?

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

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

Ответ 1

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

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

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

Единственной лучшей ссылкой для Apache Thrift по-прежнему является Apache Thrift Whitepaper. Хотя некоторые из деталей немного устарели, концепции недочета все еще актуальны. Еще одно хорошее сообщение: Diwaker Gupta "Missing Guide" , и, наконец, не в последнюю очередь предстоящая книга из Рэнди Абернети.

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