[gRPC 시작에서 운영까지] 4장_gRPC 동작 원리
RPC 흐름
클라이언트가 ProductID 를 제공해서 제품 세부 사항을 조회하는 getProduct 를 호출할 때의 처리 흐름은 아래와 같다.
- 클라이언트 프로세스는, 생성된 스텁에 있는 getProduct 함수를 호출
- 클라이언트 스텁은, 인코딩 메세지로 HTTP POST 요청을 생성
- HTTP 요청 메세지는 네트워크를 통해 서버 머신으로 전송
- 서버는, 메세지 헤더를 검사해서 어떤 서비스 함수를 호출해야하는지 확인하고 메세지를 서비스 스텁에 전달
- 서비스 스텁은, 메세지 바이트를 언어별 데이터 구조로 파싱
- 파싱된 메세지를 사용해 서비스는, getProduct 함수를 로컬로 호출
- 서비스 함수의 응답이 인코딩되어 클라이언트로 다시 전송
- 메세지가 복원되어 해당 값이, 대기중인 클라이언트 프로세스로 반환
특히 위 2번의 경우, gRPC 에서는 모든 요청이 application/grpc 접두가 붙는 content-type 을 가진 HTTP POST 요청이다.
호출하는 원격 함수 (/ProductInfo/getProduct) 는 별도의 HTTP 헤더로 전송된다.
gRPC 시작에서 운영까지 <카순 인드라시리, 다네쉬 쿠루푸>