gRPC 상태 코드별 재시도 기준
UNAVAILABLE 같은 일시적 장애만 retryPolicy로 재시도하고, 요청 오류를 나타내는 코드에는 재전송하지 않는다.
서비스 사이 호출을 gRPC로 주고받을 때의 정의, 스트리밍, 오류 처리.
UNAVAILABLE 같은 일시적 장애만 retryPolicy로 재시도하고, 요청 오류를 나타내는 코드에는 재전송하지 않는다.
Keepalive는 PING으로 단절된 연결을 감지하지만, 서버의 허용 간격보다 짧은 주기로 전송하면 연결이 종료된다.
서버는 yield로 상태를 전송하고 클라이언트는 for로 수신하며, 단절된 호출은 서버가 직접 확인하여 종료한다.
gRPC는 기본적으로 Deadline을 설정하지 않으므로 호출마다 timeout을 지정하고, 서버는 남은 시간을 후속 호출로 전파한다.
와이어 형식은 필드를 번호로만 식별하므로, 한번 사용한 번호는 변경하거나 재사용하지 않고 reserved로 차단한다.
http2 on과 grpc_pass로 요청을 전달하고, 스트리밍 경로는 기본 60초인 읽기·쓰기 timeout을 늘린다.
요청과 응답 중 어디에 stream을 지정하는지에 따라 호출 방식이 네 가지로 구분된다.
서버에 리플렉션을 활성화하면 Proto 파일 없이 Grpcurl로 목록을 조회하고 JSON으로 호출할 수 있다.