gpt4 book ai didi

go - 使用 golang http.PostForm 进行分布式跟踪

转载 作者:行者123 更新时间:2023-12-01 22:17:29 25 4
gpt4 key购买 nike

在我的项目中,我尝试使用 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() 转到下一个服务.

如何克服这个问题?

最佳答案

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

关于go - 使用 golang http.PostForm 进行分布式跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58672447/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com