美文网首页
DDIA 笔记4 Thrift, Protocol Buffer

DDIA 笔记4 Thrift, Protocol Buffer

作者: 听海吹牛逼的声音 | 来源:发表于2019-02-25 06:09 被阅读0次

    这三个词在程序员的生活中出现频率是极其之高,13年实习的时候就知道可以用Thrift和Protocol buffer,当时也简单了解了下PB的编码原理,当时也不是不求甚解,能用就行,所以有的概念也模模糊糊。现在来稍微全面掉了解这些个东西,即使不到技术深处,也能做到技术选型的正确性。

    容易混淆的概念

    我以前只关注了Thrift和PB的序列化和反序列化,就会有种错觉,Thrift就是一个序列化的协议。可实际上不是。
    Thrift = 序列化/反序列化 + RPC协议(client/server也生成了)
    PB = 单纯的序列化/反序列化
    gRPC = 以PB为基础的序列化/反序列化 + RPC协议(client/server也生成了)

    比较Thrift序列化与PB

    书里的内容就是这样,图文并茂,清楚明了,不再废话。
    Schema evolution in Avro, Protocol Buffers and Thrift

    其中书中其他方面没有怎么谈到。

    1. 从图中解析来看field的个数只能定在16个,但是这肯定不是,几千个也可以。尽管没有查到资料,但是用那个变长的机制很容易实现这个。
    2. 文中没有提到msg的大小问题。thrift就没有提到这个大小的限制。PB强制限制在2GB,默认64MB。个人理解来说。一个message传这么大的,有点过分了吧。stackoverflow上的讨论
    3. 语言支持问题:pb目前官方支持7个,第三方支持其他的。thrift官方支持的数不过来
    4. 性能比较。PB在性能和大小方面都较好于Thrift。这是16年的比较。发现其他很多lib提供更好的性能和大小。但是问题是grpc支持pb,thrift支持自己的。单纯论那上面的性能,的确其他有有时,但是在应用方面,这两个还是比较主流。
      5.一些其他的讨论,支持的数据类型都差不多等等

    Thrift的RPC和gRPC

    待续

    相关文章

      网友评论

          本文标题:DDIA 笔记4 Thrift, Protocol Buffer

          本文链接:https://www.haomeiwen.com/subject/txoiyqtx.html