interface - 公开 Protocol Buffer 接口(interface)

标签 interface protocol-buffers

我正在构建一个分布式系统,该系统由具有由 protobuf 消息定义的接口(interface)的模块/应用程序组成。

将这些 protobuf 消息直接公开给客户端是个好主意吗? ...或者最好准备一个共享库,该库负责将基于方法的接口(interface)转换为基于每个模块的 protobuf,并且客户端根本不知道 protobuf?

最佳答案

这既不是“好主意”也不是坏主意。这取决于您是否要将 Protocol Buffer 强加给您的消费者。该决定的很大一部分是:

  • 你的消费者是谁?你介意向他们公开 protobuf 的细节吗?
  • 客户端会用支持 protobuf 的语言编写吗?

  • 我的 0.02 美元是 Protocol Buffer 的完美用例,因为它们是专门为跨系统、跨语言交换而设计的。 .proto文件对数据格式进行了简洁、独立于语言的全面描述。当然,如果您决定走这条路,还有其他类似/竞争格式和库可供考虑(参见:ThriftCap'n Protoetc.)。

    关于interface - 公开 Protocol Buffer 接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15993262/

    相关文章:

    Python 在 python 中实现 protobuf --decode-raw

    ios - "repeated"类型字段未在 Google Protocol Buffer Objective C 中编译

    c++ - 使用 MSYS2/Mingw32 编译 gRPC

    java - 为什么我们使用Interface来定义方法并在Concrete Class中实现和定义它的主体?

    go - 如何在结构字段上使用类型开关(当字段是接口(interface)类型时)?

    java - 如何解决 "protoc did not exit cleanly"?

    protocol-buffers - 可视化 gRPC 和 Protocol Buffer

    java - 如何防止在 java 接口(interface)中强制转换或创建子特定方法?

    java - 从另一个 fragment 调用时接口(interface)对象不工作

    C++ DLL插件接口(interface)