如何调试 gRPC-Go 服务?
How do I debug gRPC-Go services?
使用 gRPC-Go is certainly a good way to build resilient, performant and scalable distributed systems. What I don't quite get is how to actually debug services written with it. Also, is HTTP/2 the only wire protocol 支持吗?
不确定您是否找到了解决方案...但是根据您的应用程序中有多少服务,您可以使用分布式跟踪系统来记录服务之间的调用。其中一些系统包括:
- Zipkin (http://zipkin.io/)
- 小巧玲珑(https://research.google.com/pubs/pub36356.html)
- 猎人 (https://uber.github.io/jaeger/)
如果您使用 opentracing 项目 (http://opentracing.io/),您可以从将信息传输到跟踪系统的代码中抽象出客户端和服务器中的跟踪代码。例如,您可以使用来自 OpenTracing 的 Trace 语句检测您的客户端和服务器,然后您可以将您的跟踪实现切换为以正确格式推送跟踪的 Zipkin 或 Jaeger Tracer。
有可供 gRPC 重新使用的 opentracing 绑定。 https://github.com/grpc-ecosystem/grpc-opentracing
使用 gRPC-Go is certainly a good way to build resilient, performant and scalable distributed systems. What I don't quite get is how to actually debug services written with it. Also, is HTTP/2 the only wire protocol 支持吗?
不确定您是否找到了解决方案...但是根据您的应用程序中有多少服务,您可以使用分布式跟踪系统来记录服务之间的调用。其中一些系统包括:
- Zipkin (http://zipkin.io/)
- 小巧玲珑(https://research.google.com/pubs/pub36356.html)
- 猎人 (https://uber.github.io/jaeger/)
如果您使用 opentracing 项目 (http://opentracing.io/),您可以从将信息传输到跟踪系统的代码中抽象出客户端和服务器中的跟踪代码。例如,您可以使用来自 OpenTracing 的 Trace 语句检测您的客户端和服务器,然后您可以将您的跟踪实现切换为以正确格式推送跟踪的 Zipkin 或 Jaeger Tracer。
有可供 gRPC 重新使用的 opentracing 绑定。 https://github.com/grpc-ecosystem/grpc-opentracing