Kitex 超時(shí)控制

2022-04-26 14:40 更新

超時(shí)控制

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

RPC 超時(shí)

  • 在 client 初始化時(shí)配置,配置的 RPC 超時(shí)將對(duì)此 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)用時(shí)配置,配置的 RPC 超時(shí)僅對(duì)此次調(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)
}

連接超時(shí) 

  • 在 client 初始化時(shí)配置,配置的連接超時(shí)將對(duì)此 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)用時(shí)配置,配置的連接超時(shí)僅對(duì)此次調(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)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)