我正在尝试实现一个基于Go的微服务系统。我有两个服务,我尝试Inject跨越Extract数据。
在我的第一次服务中,我有:
func (apitracer apiTracer) validatemail(res http.ResponseWriter, req *http.Request) {
validateEmailSpan := apitracer.tracer.StartSpan("Validate Email")
apitracer.tracer.Inject(
validateEmailSpan.Context(),
opentracing.HTTPHeaders,
opentracing.HTTPHeadersCarrier(req.Header))
req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
resp, err := httpClient.Do(req)
服务二:
wireContext, err := opentracing.GlobalTracer().Extract(
opentracing.HTTPHeaders,
opentracing.HTTPHeadersCarrier(req.Header))
我收到以下错误:
在提取载体中找不到 SpanContext
如果我 dump ,我会得到与 Service-One 相同的log.Println("Form values : ", req.Header.Get("Uber-Trace-Id"))正确值。Uber-Trace-Id
请求标头设置application/x-www-form-urlencoded 为此处建议的
米琪卡哇伊
相关分类