我正在构建一个分布式系统,它由模块/应用程序和protobuf消息定义的接口组成。
将这些protobuf消息直接暴露给客户端是一个好主意吗? ...或者也许最好准备一个共享库,它将负责将(基于假设)基于方法的接口转换为基于每个模块的protobuf,客户根本不会了解protobuf?
答案 0 :(得分:5)
既不是“好主意”也不是坏主意。这取决于你是否想要将协议缓冲区强加给您的消费者。那个决定的很大一部分是:
我的0.02美元是这是Protocol Buffers的完美用例,因为它们是专为跨系统,跨语言交换而设计的。 .proto
文件使数据格式简洁,语言无关,详尽。当然,还有其他类似/竞争格式&如果您决定沿着这条路走下去,可以考虑(见Thrift,Cap'n Proto,etc.)。
答案 1 :(得分:0)