Cloud Study - gRPC

2021. 5. 15. 15:47Work/Cloud_Devops

728x90
반응형

https://grpc.io/docs/what-is-grpc/introduction/

#gRPC

- g(google) + RPC(Remote Procedure Call)

- IDL(Interface Define Language) 및 기본 메시지 교환 형식으로 사용 가능

- 서버 측에서 서버는 인터페이스를 구현하고 gRPC 서버를 실행하여 클라이언트 호출을 처리

- Client 측에서 서버와 동일한 메소드를 제공

 

#gRPC 사용

- 동기식 백엔드 마이크로서비스 - 마이크로서비스 통신의 즉각적 응답

- 혼합 프로그래밍 플랫폼 환경

- 성능이 중요한 낮은 대기 시간 및 높은 처리량의 통신

- 지점간 실시간 통신, 양방향 스트리밍 지원, 실시간 메시지 푸시

 

#Protocol Buffers

- 프로토콜 버퍼로 작업할 첫번째 단계는 직렬화하려는 데이터의 구조를 정의

- 프롵토콜 버퍼 메시지로 지정된 RPC 메서드 매개 변수및 반환 유형을 사용하여 일반 proto 파일에서
gRPC 서비스를 정의

 

#RPC life cycle

- Unary RPC, 클라이언트가 단일 요청을 보내고 단일 응답을 받는 가장 간단한 유형의 RPC를 고려
  1. 클라이언트가 stub(스텁) 메서들르 호출하면 이 호출에 대한 클라이언트의 메타 데이터,
     메서드 이름 및 지정된 기한을 사용하여 RPC가 호출되었음을 서버에 알림
  2. 서버는 자체 초기 메타데이터를 즉시 다시 보내거나 클라이언트의 요청 메시지를 기다릴 수 있음
  3. 서버가 클라이언트의 요청 메시지를 받으면 응답을 만들고 채우는 데 필요한 모든 작업을 수행
     응답은 상태 세부 정보 및 선택적 후행 메타 데이터와 함께 클라이언트에 반환
  4. 응답 상태가 OK이면 클라이언트가 응답을 받고 클라이언트 측에서 호출 완료

- Server streaming RPC, 서버가 클라이언트의 요청에 대한 응답으로 메시지 스트림을 반환

- Client streaming RPC, 클라이언트가 단일 메시지 대신 서버로 메시지 스트림을 보내는 것
728x90
반응형

'Work > Cloud_Devops' 카테고리의 다른 글

Cloud Study - ETCD cluster  (0) 2021.07.14
Cloud Study - 고가용성  (0) 2021.05.23
Cloud Study - Terraform  (0) 2021.04.10
Cloud Study - EKS, Argo, prometheus, grafana  (0) 2021.04.07
Cloud Study - 종료는 꼭 하세요  (0) 2021.03.29