Самые большие различия между буфером протокола и Thrift? - PullRequest
263 голосов

Ответы [ 14 ]

3 голосов
/ 28 января 2018

С одной стороны, protobuf не является полной реализацией RPC. Для этого требуется что-то вроде gRPC.

gPRC очень медленный по сравнению с Thrift:

http://szelei.me/rpc-benchmark-part1/

3 голосов
/ 14 апреля 2017

Я думаю, что большинство из этих пунктов упустили тот базовый факт, что Thrift является платформой RPC, которая может сериализовать данные, используя различные методы (двоичные, XML и т. Д.).

Протоколные буферы предназначены исключительно для сериализации, это не фреймворк, как Thrift.

0 голосов
/ 08 декабря 2018

Также важно отметить, что не все поддерживаемые языки совместимы с Thrift или Protobuf. На данный момент речь идет о реализации модулей в дополнение к базовой сериализации. Позаботьтесь о том, чтобы проверить контрольные показатели для любого языка, который вы планируете использовать.

0 голосов
/ 03 сентября 2017

Здесь есть несколько отличных моментов, и я собираюсь добавить еще один, если здесь кто-нибудь пересечет путь.

Thrift дает вам возможность выбирать между Thrift-двоичным и Thrift-компактным (де) сериализатором, Thrift-двоичный файл будет иметь отличную производительность, но больший размер пакета, тогда как Thrift-Compact даст вам хорошее сжатие, но требует большей вычислительной мощности , Это удобно, потому что вы всегда можете переключаться между этими двумя режимами так же легко, как менять строку кода (черт, даже сделать ее настраиваемой). Так что, если вы не уверены, насколько ваше приложение должно быть оптимизировано для размера пакета или вычислительной мощности, экономия может быть интересным выбором.

PS: посмотрите этот превосходный эталонный проект thekvs, в котором сравниваются многие сериализаторы, включая thrift-binary, thrift-compact и protobuf: https://github.com/thekvs/cpp-serializers

PS: есть еще один сериализатор с именем YAS, который также предоставляет эту опцию, но он не требует схем, см. Ссылку выше.

...