본문 바로가기
Programming/Go

[Go] grpc connection timeout 추가

by guru_k 2022. 5. 23.
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
반응형

'Programming > Go' 카테고리의 다른 글

[Go] Publishing modules - pkg.go.dev 에 package 올리기  (0) 2022.06.21
[Go] defer / panic 함수  (0) 2022.05.23

댓글