【问题标题】:can I use thrift rpc with protobuf together我可以将 thrift rpc 与 protobuf 一起使用吗
【发布时间】:2015-05-06 10:31:12
【问题描述】:

作为主题,我想使用 thrift rpc 函数,而使用 protobuf 进行序列化,有没有项目做到这一点? 我不想使用 thrift 序列化的原因是在我查看生成的 cpp 文件之后,我发现它没有 _in_place 函数,这意味着它必须复制构造每个成员,而对于我来说,我有char* 等已经分配到其他地方了。

【问题讨论】:

  • 查看生成的代码,您会很快发现这是“不可能”的任务,或者至少任务“听起来像是很多您不想做的工作”。当然,您可以编写自己的 Thrift 传输,但是您还必须重写代码生成器,以使生成的代码正确处理非 Thrift 数据对象。可能还有图书馆的其他部分。并确保衡量所有这些工作的净收益。

标签: protocol-buffers thrift thrift-protocol


【解决方案1】:

您可能这样做的唯一方法是声明一个包含大字节 blob 的 Thrift 消息,然后您将其解析为 Protobuf。但是,这将需要一个额外的副本,这违背了您的目的。

请注意,Google 刚刚发布了GRPC,这是一个用于 Protobufs 的 RPC 协议。如果您正在开始一个新项目并且想要使用 Protobuf RPC,请使用它。

您可能还对Cap'n Proto 感兴趣,这是一个专门用于避免复制的序列化和 RPC 系统。

(披露:我是 Cap'n Proto 的作者,也是谷歌大部分开源 Protobuf 代码的作者,但我与 GRPC 无关。)

【讨论】:

    猜你喜欢
    • 2013-12-30
    • 1970-01-01
    • 2023-03-25
    • 2020-08-04
    • 2018-10-23
    • 2011-02-22
    • 2021-03-16
    • 2016-11-20
    • 2019-01-25
    相关资源
    最近更新 更多