Экономия против протокольных буферов

Я уже давно пользуюсь PB, но Thrift всегда был в глубине души.

Основными преимуществами экономии, на мой взгляд, являются:

  1. Собственные коллекции (т. Е. Векторные, множественные и т. Д.) И повторяющиеся PB, обеспечивающие функциональность, аналогичную, но не совсем похожую (без итераторов, если вы не копаетесь в RepeatedField, который в документации гласит, что "в большинстве случаев не требуется").
  2. Обеспечена достойная реализация RPC, а не просто хуки для подключения вашей собственной.
  3. Более официально поддерживаемые языки (PB предлагает "официальную" поддержку Java, C++, Python)

Минусы Thrift:

  1. Реализация RPC означает, что я не могу подключить свой собственный (например) уровень шифрования / аутентификации сверху.
  2. Поддержка Windows не кажется хорошей.
  3. У PB определенно есть, если не лучше, более доступная документация.

Нейтральные:

  • Неизвестный размер.lib/.dll в Windows (Thrift).
  • Большой размер.lib в Windows (PB, но он предлагает -lite, который значительно меньше).
  • По скорости они оба похожи.

Я еще не совсем готов сделать решающий шаг и переключиться на Thrift, кто-нибудь может предложить мне больше плюсов / минусов или причин пойти тем или иным путем?

Спасибо!

4 ответа

Как я уже сказал, "Самые большие различия между Thrift и Protocol Buffers?" тема:

Ссылаясь на сравнение Thrift против Protobuf против JSON:

Кроме того, существует множество интересных дополнительных инструментов, доступных для этих решений, которые могут решить. Вот примеры для Protobuf: Protobuf-wireshark, protobufeditor.

Вы можете сначала проанализировать свои потребности:

Вам нужен протокол-независимый формат? Например, вы хотите реализовать собственный протокол или вам нужна 100% переносимость? В таком случае используйте PB.

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

Надеюсь это поможет.

Основная причина, по которой наш проект придерживался Thrift поверх протокольных буферов, заключалась в том, что протокольные буферы не генерируют полностью RPC-сервер автоматически, а существующие решения для PB кажутся довольно нестабильными. Просто мои 0,02 доллара.

Вам необходимо подробно указать ваши варианты использования. Еще это "Что лучше, машина или грузовик?" вопрос.

Другие вопросы по тегам