我将数据从我的客户端传递到服务器,反之亦然。我想知道的是它们是协议缓冲区的任何大小限制。
协议缓冲区不是为处理大型消息而设计的。作为一般经验法则,如果您正在处理大于每兆字节的消息,则可能需要考虑替代策略。
也就是说,协议缓冲区非常适合处理大型数据集中的单个消息。通常,大型数据集实际上只是一小部分的集合,其中每个小部分可能是结构化的数据。尽管协议缓冲区无法同时处理整个集合,但使用协议缓冲区对每个部分进行编码可以极大地简化您的问题:现在您只需要处理一组字节字符串而不是一组结构。
协议缓冲区不包括对大型数据集的任何内置支持,因为不同的情况需要不同的解决方案。有时一个简单的记录列表会做,而有时你可能想要更像数据库的东西。每个解决方案都应该作为一个单独的库开发,以便只有需要它的人才需要支付成本。
据我了解protobuf encoding,以下适用:
1xxxxxxx
组组成的varint完全有效 - 我认为没有实际的实现支持大于64位思考的变量)0xxxxxxx
)(请验证我的想法)