grpc readable/ascii(开发者害怕二进制)

grpc readable/ascii (Devs are afraid of binary)

到目前为止,我只阅读了有关 grpc 和 protocol-buffers

我和一些队友谈过。他们以前从未听说过。他们害怕二进制数据传输。

他们担心很难调试。

我能理解他们的心情。

有没有办法通过可读的方式访问 grpc/protocol-buffers(用于调试?)

为了回答你的直接问题,是的,你可以将 protobuf 的文本格式表示称为 TextFormat。它不提供与普通 protobuf 相同的向后兼容性保证,但它是人类可读的并且看起来类似于 JSON。

也就是说,通常不需要能够在线上读取二进制形式的 protobuf。 Protos 的二进制形式可以很容易地解码并在每个端点上打印出来。例如,生成的代码包含获取二进制 protobuf 并打印出文本表示的方法。与 proto 交互的工具都使用这些基于文本的二进制数据表示来检查和调试数据。

需要考虑的另一件事:gRPC 使用 SSL 进行通信,因此您通常无法直接查看流量。你需要一个程序来解密它,这通常也是你解码原型的地方。

最后:数据的其他文本表示形式,即 JSON,通常在发送前被缩小,无论如何您都无法直接读取。您需要通过格式化程序 运行 它,这与解码二进制原型的工作量大致相同。