如何调试 gRPC-Go 服务?

5

使用gRPC-Go无疑是构建弹性、高性能和可扩展分布式系统的好方法。但我不太明白如何调试使用它编写的服务。此外,HTTP/2是唯一支持的传输协议吗?


2
您可以通过将 GRPC_TRACE 环境变量设置为 all 来进行调试。至于 HTTP/2,我认为这是出于安全性和可靠性的考虑。不过我的想法可能是错误的。 - RisingSun
感谢 @khuderm... 那么,是否有其他可用的写协议呢? - Michael Hausenblas
1
抱歉,我的意思是没有一个,但我不确定是否百分之百正确。 - RisingSun
2
该程序库似乎被硬编码为仅使用HTTP/2。请参阅https://github.com/grpc/grpc-go/blob/master/transport/transport.go#L393。 - Frederik Deweerdt
1个回答

2

不确定您是否已经找到解决方案......但是根据您的应用程序中有多少服务,您可以使用分布式跟踪系统记录服务之间的调用。其中一些系统包括:

如果您使用opentracing项目(http://opentracing.io/),则可以将跟踪代码抽象化到客户端和服务器中,使其与传输信息至跟踪系统的代码分离。例如,您可以使用OpenTracing的Trace语句来为客户端和服务器创建工具,然后您可以切换跟踪实现以使用Zipkin或Jaeger Tracer将跟踪以正确的格式推入。

对于gRPC,有可用的opentracing绑定。 https://github.com/grpc-ecosystem/grpc-opentracing


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接