Kitex 超時控制

2022-04-26 14:40 更新

超時控制

Kitex 支持了兩種超時,RPC 超時和連接超時,兩種超時均支持 client 級別和調(diào)用級別的配置。

RPC 超時

  • 在 client 初始化時配置,配置的 RPC 超時將對此 client 的所有調(diào)用生效

import "github.com/cloudwego/kitex/client"
...
rpcTimeout := client.WithRPCTimeout(3*time.Second)
client, err := echo.NewClient("echo", rpcTimeout)
if err != nil {
	log.Fatal(err)
}

  • 在發(fā)起調(diào)用時配置,配置的 RPC 超時僅對此次調(diào)用生效

import "github.com/cloudwego/kitex/client/callopt"
...
rpcTimeout := callopt.WithRPCTimeout(3*time.Second)
resp, err := client.Echo(context.Background(), req, rpcTimeout)
if err != nil {
	log.Fatal(err)
}

連接超時 

  • 在 client 初始化時配置,配置的連接超時將對此 client 的所有調(diào)用生效

import "github.com/cloudwego/kitex/client"
...
connTimeout := client.WithConnectTimeout(50*time.Millisecond)
client, err := echo.NewClient("echo", connTimeout)
if err != nil {
	log.Fatal(err)
}

  • 在發(fā)起調(diào)用時配置,配置的連接超時僅對此次調(diào)用生效

import "github.com/cloudwego/kitex/client/callopt"
...
connTimeout := callopt.WithConnectTimeout(50*time.Millisecond)
resp, err := client.Echo(context.Background(), req, connTimeout)
if err != nil {
	log.Fatal(err)
}


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號