gRPC-Go을 사용하면 복원력 있고 성능이 뛰어나고 확장 가능한 분산 시스템을 구축 할 수 있습니다. 내가 얻지 못하는 것은 실제로 그 서비스로 작성된 서비스를 어떻게 디버그 할 것인가이다. 또한 HTTP/2는 wire protocol 만 지원합니까?어떻게 gRPC-Go 서비스를 디버깅합니까?
3
A
답변
1
솔루션을 아직 찾지 못했지만 애플리케이션에있는 서비스 수에 따라 분산 된 추적 시스템을 사용하여 서비스간에 통화를 기록 할 수 있습니다. 이러한 시스템 중 일부는 다음과 같습니다
- 지프 킨 (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 reay를위한 opentracing 바인딩이 있습니다. https://github.com/grpc-ecosystem/grpc-opentracing
'GRPC_TRACE' 환경 변수를'all'으로 설정하여 디버그 할 수 있습니다. HTTP/2에 관해서는 보안 및 안정성 문제로 인한 것이라고 생각합니다. 내가 틀릴 수도 있지만 – khuderm
고마워요 @ khuderm ... 그럼, 대체 쓰기 프로토콜을 사용할 수 있습니까? –
죄송합니다. 하나도 없지만 100 % 확신 할 수 없습니다. – khuderm