golang rpcx记录一次解决 context deadline exceeded的问题

测试同时并发一万个应用去调用另一个微服务应用结果出现了上下文切换超时的问题

默认的超时时间只有一秒时间,程序在高并发的场景下很容易触发这个错误!

最简单的解决办法就是把超时时间调大一点 以前设置的是一秒 现在调成五秒

另一种解决办法就是优化自己的程序,使调用时间大大缩短保证全部的调用耗时都在一秒内,

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)
	}
}()

你可能感兴趣的:(goalng)