我正在构建一个分布式系统,它由模块/应用程序和protobuf消息定义的接口组成. 将这些protobuf消息直接暴露给客户端是一个好主意吗? …或者也许最好准备一个共享库,它将负责将(基于假
将这些protobuf消息直接暴露给客户端是一个好主意吗? …或者也许最好准备一个共享库,它将负责将(基于假设)基于方法的接口转换为基于每个模块的protobuf,客户根本不会了解protobuf?
这不是一个“好主意”也不是一个坏主意.这取决于您是否要将协议缓冲区强加给您的消费者.那个决定的很大一部分是:>谁是你的消费者?你介意将protobuf细节暴露给他们吗?
>客户是否会使用支持protobuf的语言编写?
我的0.02美元是这是Protocol Buffers的完美用例,因为它们是专为跨系统,跨语言交换而设计的. .proto文件提供了简洁,独立于语言的完整数据格式描述.当然,还有其他类似/竞争格式&如果您决定沿着这条路走下去,那么图书馆就会考虑(见:Thrift,Cap’n Proto,etc.).