timeout for configuration calls
1. Preparations
- dubbo-go cli tools and dependent tools have been installed
- Create a new demo application
2. Modify RPC call-related parameters through configuration items
2.1 Modify the timeout of the call and verify
dubbo:
consumer:
request-timeout: 15s # Configure client timeout
The default RPC timeout of the Dubbo-go application is 3s. After the request times out, the client will return an error with the error context deadline exceeded. In this task, you need to first modify the server function of the demo application to take a long time, and then check the client’s timeout error; and then configure the client timeout so that the time-consuming function can be called normally.
go-server/cmd/server.go: Modify the function of the demo application server to a function that takes 10s
func (s *GreeterProvider) SayHello(ctx context.Context, in *api.HelloRequest) (*api.User, error) { logger.Infof("Dubbo3 GreeterProvider get user name = %s\n", in.Name) time.Sleep(time.Second*10) // sleep 10s return &api.User{Name: "Hello " + in.Name, Id: "12345", Age: 21}, nil }
The client initiates a call and observes the error log
ERROR cmd/client.go:47 context deadline exceeded
go-client/conf/dubbogo.yaml: client modification timeout
dubbo: consumer: request-timeout: 15s # Configure client timeout references: GreeterClientImpl: protocol: tri url: "tri://localhost:20000" interface: "" # read from pb
Initiate the call through the client again, observe the log, and return normally:
client response result: name: "Hello laurence" id: "12345" age:21
Last modified January 2, 2023: Enhance Dubbogo docs (#1800) (71c8e72274)