Programming/Go
[Go] grpc connection timeout 추가
guru_k
2022. 5. 23. 19:43
728x90
반응형
grpc connection timeout을 추가하기
1. Dial 사용
Dial은 주어진 주소로 client connection을 생성합니다.
Dial 함수의 구현부를 보면 DialContext를 호출하기 때문에 Dial 함수는 deprecated되었고 DialContext를 통해 구현하는것이 좋습니다.
// Dial 구현부
func Dial(target string, opts ...DialOption) (*ClientConn, error) {
return DialContext(context.Background(), target, opts...)
}
grpc.WithTimeout 사용
connection, err := grpc.Dial(address, grpc.WithInsecure(), grpc.WithTimeout(5 * time.Second))
if err != nil {
fmt.Println("connection failed :", err)
return
}
2. DialContext 사용
DialContext 역시 주어진 주소로 client connection을 생성합니다.
그러나 DialContext는 default가 non-blocking dial로 동작하며 blocking dial이 필요할 경우 WithBlock() Dial 옵션을 사용하여야 합니다.
ctx, _ := context.WithTimeout(context.Background(), grpcConTimeout)
connection, err := grpc.DialContext(ctx, address, grpc.WithInsecure())
if err != nil {
fmt.Println("connection failed :", err)
return
}
728x90
반응형