配置呼叫逾時
1. 準備工作
- 已安裝 dubbo-go cli 工具和相關依賴工具
- 建立新的 demo 應用程式
2. 透過配置項修改 RPC 呼叫相關參數
2.1 修改呼叫逾時並驗證
dubbo:
consumer:
request-timeout: 15s # Configure client timeout
Dubbo-go 應用程式的預設 RPC 逾時為 3 秒。請求逾時後,客戶端將返回一個錯誤,錯誤上下文為 deadline exceeded。在此任務中,您需要先修改 demo 應用程式伺服器的函式,使其執行時間較長,然後檢查客戶端的逾時錯誤;接著配置客戶端逾時,以便可以正常呼叫耗時函式。
go-server/cmd/server.go:將 demo 應用程式伺服器的函式修改為執行 10 秒的函式
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 }
客戶端發起呼叫並觀察錯誤日誌
ERROR cmd/client.go:47 context deadline exceeded
go-client/conf/dubbogo.yaml:客戶端修改逾時
dubbo: consumer: request-timeout: 15s # Configure client timeout references: GreeterClientImpl: protocol: tri url: "tri://#:20000" interface: "" # read from pb
再次透過客戶端發起呼叫,觀察日誌,正常返回
client response result: name: "Hello laurence" id: "12345" age:21
最後修改日期:2023 年 1 月 2 日:增強 Dubbogo 文件 (#1800) (71c8e722740)