为什么不是Thrift,为什么不是HTTP RPC(JSON + gzip)

jeb*_*the 54 json thrift

Thrift的主要目标是实现跨编程语言的高效可靠的通信.但我认为HTTP-RPC也可以做到这一点,Web开发人员几乎每个人都知道如何使用http,并且比Thrift更容易实现HTTP-RPC(json),

也许Thrift-RPC更快,然后谁能告诉我它们之间的性能差异?

Not*_*fer 95

速度以外的一些原因:

  1. Thrift完全生成客户端和服务器代码,包括您传递的数据结构,因此除了编写处理程序和调用客户端之外,您不必处理任何其他内容.并且自动验证和解析包括参数和返回在内的所有内容.因此,您可以免费获得对数据的完整性检查.

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

  3. 如果您需要,可以将Thrift设置为非常容易地使用HTTP和JSON(例如,如果您的客户端位于Internet上并且需要通过防火墙)

  4. Thrift支持持久连接,并避免HTTP引发的连续TCP和HTTP握手.

就个人而言,当我需要来自外部的连接时,我使用thrift作为内部LAN RPC和HTTP.

我希望这一切对你都有意义.你可以在这里阅读我关于节俭的演讲:

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

它与其他一些节俭的替代品有关.

  • 大多数HTTP客户端也支持keep-alives :) (2认同)

Wil*_*ire 5

以下是不同序列化程序性能比较的优秀资源:https://github.com/eishay/jvm-serializers/wiki/

特别讲Thrift vs JSON:Thrift性能与最好的JSON库(jackson,protostuff)相当,序列化尺寸略低.

IMO,最强大的节俭优势是方便的可互操作RPC调用和方便处理二进制数据.