golang rpcx记录一次解决 context deadline exceeded的问题
测试同时并发一万个应用去调用另一个微服务应用结果出现了上下文切换超时的问题解决也很简单把超时时间调大一点 以前设置的是一秒现在调成五秒ctx, cancelFn := context.WithTimeout(context.Background(), 5*time.Second)err := xclient.Call(ctx, "Mul", args, reply)if err !...
·
测试同时并发一万个应用去调用另一个微服务应用结果出现了上下文切换超时的问题
默认的超时时间只有一秒时间,程序在高并发的场景下很容易触发这个错误!
最简单的解决办法就是把超时时间调大一点 以前设置的是一秒 现在调成五秒
另一种解决办法就是优化自己的程序,使调用时间大大缩短保证全部的调用耗时都在一秒内,
ctx, cancelFn := context.WithTimeout(context.Background(), 5*time.Second)
err := xclient.Call(ctx, "Mul", args, reply)
if err != nil {
panic(err)
}
cancelFn()
_ = xclient.Close()
func() {
if r := recover(); r != nil {
fmt.Printf("捕获到的错误:%s\n", r)
}
}()
更多推荐
已为社区贡献3条内容
所有评论(0)