json thrift

Por qué Thrift, por qué no RPC HTTP(JSON+gzip)



(2)

Algunas razones distintas de la velocidad:

  1. Thrift genera completamente el código del cliente y del servidor, incluidas las estructuras de datos que está pasando, por lo que no tiene que lidiar con nada más que escribir los manejadores e invocar al cliente. y todo, incluidos los parámetros y las devoluciones, se validan y analizan automáticamente. por lo que está obteniendo controles de cordura en sus datos de forma gratuita.

  2. Thrift es más compacto que HTTP, y se puede ampliar fácilmente para admitir cosas como el cifrado, la compresión, la IO sin bloqueo, etc.

  3. Thrift puede configurarse para usar HTTP y JSON con bastante facilidad si lo desea (por ejemplo, si su cliente está en algún lugar de Internet y necesita pasar firewalls)

  4. Thrift admite conexiones persistentes y evita los continuos protocolos de TCP y HTTP que HTTP incurre.

Personalmente, uso thrift para LAN RPC interna y HTTP cuando necesito conexiones desde el exterior.

Espero que todo esto tenga sentido para ti. Puedes leer una presentación que di sobre el ahorro aquí:

http://www.slideshare.net/dvirsky/introduction-to-thrift

Tiene enlaces a algunas otras alternativas al ahorro.

El objetivo principal de Thrift es permitir una comunicación eficiente y confiable a través de los lenguajes de programación. pero creo que HTTP-RPC también puede hacer eso, el desarrollador web casi todo el mundo sabe cómo trabajar en http y es más fácil implementar HTTP-RPC (json) que Thrift,

Tal vez Thrift-RPC sea más rápido, entonces ¿quién puede decirme la diferencia en el rendimiento entre ellos?


Este es un buen recurso para comparar el rendimiento de diferentes serializadores: https://github.com/eishay/jvm-serializers/wiki/

Hablando específicamente de Thrift vs JSON: el rendimiento de Thrift es comparable a las mejores bibliotecas JSON (jackson, protostuff), y el tamaño serializado es algo menor.

En mi opinión, las ventajas de ahorro más fuertes son las convenientes invocaciones RPC interoperables y el manejo conveniente de datos binarios.