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服务的时候