[gRPC 시작에서 운영까지] 4장_gRPC 동작 원리

RPC 흐름

클라이언트가 ProductID 를 제공해서 제품 세부 사항을 조회하는 getProduct 를 호출할 때의 처리 흐름은 아래와 같다.

  1. 클라이언트 프로세스는, 생성된 스텁에 있는 getProduct 함수를 호출
  2. 클라이언트 스텁은, 인코딩 메세지로 HTTP POST 요청을 생성
  3. HTTP 요청 메세지는 네트워크를 통해 서버 머신으로 전송
  4. 서버는, 메세지 헤더를 검사해서 어떤 서비스 함수를 호출해야하는지 확인하고 메세지를 서비스 스텁에 전달
  5. 서비스 스텁은, 메세지 바이트를 언어별 데이터 구조로 파싱
  6. 파싱된 메세지를 사용해 서비스는, getProduct 함수를 로컬로 호출
  7. 서비스 함수의 응답이 인코딩되어 클라이언트로 다시 전송
  8. 메세지가 복원되어 해당 값이, 대기중인 클라이언트 프로세스로 반환

특히 위 2번의 경우, gRPC 에서는 모든 요청이 application/grpc 접두가 붙는 content-type 을 가진 HTTP POST 요청이다.
호출하는 원격 함수 (/ProductInfo/getProduct) 는 별도의 HTTP 헤더로 전송된다.


gRPC 시작에서 운영까지 <카순 인드라시리, 다네쉬 쿠루푸>

Comments