到目前为止,我只阅读了关于grpc和protocol-buffers的内容。
我和一些队友交谈过。他们以前从未听说过。他们害怕二进制数据传输。
他们担心调试很难。
我能理解他们的感受。
有没有办法通过可读的方式访问grpc / protocol-buffers(用于调试?)
答案 0 :(得分:3)
要回答您的直接问题,是的,您可以使用名为TextFormat
的protobuf的文本格式表示。它不提供与普通protobuf相同的向后兼容性保证,但它是人类可读的并且看起来类似于JSON。
也就是说,通常不需要在线上读取二进制形式的protobufs。 Protos的二进制形式可以非常容易地解码并打印在每个端点上。例如,生成的代码包含采用二进制protobuf并打印出文本表示的方法。与proto交互的工具都使用这些基于文本的二进制数据表示来检查和调试数据。
另外需要考虑的一件事:gRPC使用SSL进行通信,因此您通常无法直接查看流量。你需要一个程序来解密它,这通常也是解码protos的点。
最后:数据的其他文本表示,即JSON,通常在发送之前缩小,并且无论如何都无法直接读取它。您需要通过格式化程序运行它,这与解码二进制原型的工作量大致相同。