0

在我的项目中,我尝试使用opentracing.

我的微服务具有以下结构。

-- API-Gateway
       |_ User-Service
       |_ Notification 

在我的 API 网关中,我启动并在 API 网关中,我使用一个函数来开始跟踪,代码取自Setting up your tracer

main()

gatewayTracer := &apiTracer{tracer: startTracing("API Gateway")}

http.HandleFunc("/getemail", gatewayTracer.validatemail)

func (apitracer apiTracer) validatemail(res http.ResponseWriter, req *http.Request) {

    validateEmailSpan := apitracer.tracer.StartSpan("Validate Email")
}

validateemail()我从使用调用我的用户服务http.PostForm()

_, err := http.PostForm("http://user:7071/checkemail", url.Values{"uuid": {uuid}, "email": {email}})

uuid是单独的任务,而不是跟踪。我无法Span使用PostForm().

如何克服这个问题?

4

1 回答 1

1

我不认为它可以从PostForm. 您需要用于http.NewRequest创建 POST 请求、Inject标头中的跨度并用于Client.Do发送请求。

于 2020-01-11T19:30:16.380 回答