我已经选择在项目中使用thrift作为RPC框架。该项目有许多序列化/反序列化操作(例如,将数据存储到磁盘)。并且序列化格式至少应该可以访问C ++ / Java / Python。似乎thrift的序列化解决方案比Protobuf更复杂(例如,它需要在序列化对象之前创建协议)。
所以我的问题是:是否值得使用Protobuf进行序列化/反序列化部分,即使thrift 能够完成此任务?
答案 0 :(得分:1)
我同意Thrift比Protobuf RPC更适合跨语言RPC(参见http://pjklauser.wordpress.com/2013/02/27/why-googles-protobuf-rpc-will-not-reach-widespread-adoption/)。如果您正在使用thrift,则很难证明使用不同的“库”来序列化到文件/存储。您需要编写无尽的映射代码。两个库都有不同的维护周期,您需要独立维护,这将为将来的工作提供额外的帮助。与额外的工作相比,写一行或两行代码,或节省一到两个字节的空间,或节省一点微秒的CPU时间的成本都没有。