0x1
微服务服务之间的调用超时设置是很重要的,有时候某个服务因为某些原因响应缓慢,或不可用的时候,这时为了保证调用方的服务正常,超时设置就很有必要。我们来看看rpcx的调用服务超时的技术细节是如何的。
0x2
客户端代码
func main() {
d := client.NewConsulDiscovery(*basePath, "Echo", []string{*consulAddr}, nil)
option := client.DefaultOption
// 设置了响应服务端的超时时间为5秒
option.ReadTimeout = 5 * time.Second
xclient := client.NewXClient("Echo", client.Failtry, client.RandomSelect, d, option)
defer xclient.Close()
args := &Args{
Name: "Rabbit",
}
reply := &Reply{}
err = xclient.Call(ctx, "Say", args, reply)
if err != nil {
log.Fatalf("调用失败: %v", err)
}
log.Printf("%s\n", reply.Greet)
}
这段代码表示,当客户端调用Echo服务的时候,假如Echo服务的响应超过5秒,则客户端直接返回,继续执行下面的逻辑
来源:oschina
链接:https://my.oschina.net/u/615967/blog/4270579