Búferes Thrift vs Protocol [duplicate]

3 minutos de lectura

avatar de usuario
por favor bórrame

He estado usando PB durante bastante tiempo, pero Thrift ha estado constantemente en el fondo de mi mente.

Las principales ventajas del ahorro, como yo lo veo, son:

  1. Colecciones nativas (es decir, vector, conjunto, etc.) frente a PB repetidos que brindan una funcionalidad similar, pero no del todo similar (sin iteradores a menos que profundice en RepeatedField, que la documentación establece que “no debería ser necesario en la mayoría de los casos”).
  2. Se proporciona una implementación RPC decente, en lugar de solo ganchos para conectar el suyo.
  3. Más idiomas soportados oficialmente (PB ofrece soporte “oficial” para Java, C++, Python)

Los contras de Thrift:

  1. La implementación de RPC significa que no puedo conectar mi propia capa de encriptación/autenticación (por ejemplo) en la parte superior.
  2. El soporte de Windows no parece ser muy bueno.
  3. PB definitivamente parece tener, si no mejor, documentación más accesible.

Neutral:

  • Tamaño desconocido de .lib/.dll en Windows (Thrift).
  • Tamaño grande de .lib en Windows (PB, pero ofrece un -lite que es significativamente más pequeño).
  • En cuanto a la velocidad, ambos parecen ser similares.

Todavía no estoy listo para dar el paso y cambiarme a Thrift, ¿alguien puede ofrecerme más pros/contras o razones para ir por un camino u otro?

¡Gracias!

  • Se considera un buen estilo colocar las actualizaciones en una sección separada en lugar de sobrescribir la pregunta original. 🙂

    – awdz9nld

    7 de noviembre de 2012 a las 14:18

  • De hecho, puede agregar su propia capa de encriptación/autenticación. Solo necesita escribir una clase TTransport alternativa. O algo así… hay una clase TSLSocket en alguna parte.

    – Timmmmm

    8 de enero de 2013 a las 11:57


  • Vieja pregunta, lo sé. Solo quiero mencionar que la compatibilidad con Windows de Thrift se ha mejorado mucho desde 2010.

    – JensG

    18 de enero de 2014 a las 12:09

avatar de usuario
Grzegorz Wierzowiecki

Como he dicho como “¿Mayores diferencias de Thrift vs Protocol Buffers?” tema :

Refiriéndose a Comparación entre Thrift, Protobuf y JSON :

Además, hay muchas herramientas adicionales interesantes disponibles para esas soluciones, que podrían decidir. Aquí hay ejemplos para Protobuf: Protobuf-wireshark , protobufetor.

  • Esta información está desactualizada. Aquí está la versión más reciente

    – JensG

    27 de enero de 2015 a las 9:21

Es posible que desee analizar su necesidad primero:

¿Necesita un formato independiente del protocolo? Por ejemplo, ¿quieres implementar un protocolo personalizado o necesitas una portabilidad del 100 %? En tal caso, utilice PB.

Si está de acuerdo con el protocolo predeterminado de Thrift y necesitar un protocolo para empezar, por todos los medios, ve con Thrift.

Espero que esto ayude.

La razón principal de nuestro proyecto para seguir con Thrift sobre los búferes de protocolo fue que los búferes de protocolo no generan automáticamente un servidor RPC completo, y las soluciones existentes para PB parecían ser bastante inestables. Solo mis $0.02.

Debe especificar su(s) caso(s) de uso en detalle. De lo contrario, esto es un “¿Qué es mejor, un automóvil o un camión?” pregunta.

¿Ha sido útil esta solución?