为什么节俭,为什么不使用HTTP RPC(JSON + gzip)

节俭的主要目标是实现跨编程语言的高效可靠的通信。 但我认为HTTP-RPC也可以这样做,web开发人员几乎每个人都知道如何在http上工作,并且比Thrift更容易实现HTTP-RPC(json)

也许Thrift-RPC更快,那么谁能告诉我他们之间的差异?

速度以外的几个原因:

  1. Thrift完全生成客户端和服务器代码,包括您传递的数据结构,因此除了编写处理程序和调用客户端之外,您不必处理任何事情。 所有的东西,包括参数和返回值都会被自动validation和parsing。 所以你是免费的,你的数据健康检查。

  2. Thrift比HTTP更紧凑,可以轻松扩展以支持encryption,压缩,非阻塞IO等等。

  3. Thrift可以设置为使用HTTP和JSON,如果你想要的话(比如你的客户端在互联网上的某个地方,需要通过防火墙)

  4. Thrift支持持续连接,并避免了HTTP发生持续的TCP和HTTP握手。

就我个人而言,当我需要从外部连接时,我使用节省内部LAN RPC和HTTP。

我希望这一切对你有意义。 你可以在这里阅读我对节俭的介绍:

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

它与几个其他的节俭替代品有联系。

这里有不同的序列化器的性能比较的好资源: https : //github.com/eishay/jvm-serializers/wiki/

具体说的是Thrift vs JSON:Thrift性能与最好的JSON库(jackson,protostuff)相当,并且序列化的大小略低。

国际海事组织,最强大的节约优势是方便的互操作的RPC调用和方便的二进制数据处理。