uju's Tech

[gRPC] gPRC Remote Procedure Calls란? 본문

DevOps/MSA

[gRPC] gPRC Remote Procedure Calls란?

ujusy 2020. 7. 23. 17:01

<본 포스팅은공부목적으로 작성되었습니다. 혹시 틀린 부분이 있거나 문제가 되는 부분이 있다면 답글 달아주세요!>

 

[참고 링크]

 

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

 

Introduction to gRPC

An introduction to gRPC and protocol buffers.

grpc.io

 

 

In gRPC, a client application can directly call a method on a server application on a different machine as if it were a local object, making it easier for you to create distributed applications and services.

gRPC는 다른 서비스 간 언어 제약 없이 사용할  수 있는 오픈소스 고성능 원격  프로시저 호출 프레임워크이다. 위의 그림을 살펴보면 client는 java혹은 ruby로 구현되어 있다. 또한 서버의 경우 c++로 구현되어 있는 것을 확인할 수 있다. 이렇게 다른 환경으로 구성되어 있는 것을 통신 가능하게 해주는 것이 gRPC이다. 정확히 말하자면 데이터를 주고 받을 때 프로토콜 버퍼들 사이에서 gRPC 통신을 한다. 

 

gRPC는 HTTP/2를 기반으로 동작하며 구글에서 만든 데이터 전송 구조인 프로토콜 버퍼를 사용한다.

 

gRPC는 기본적으로 프로토콜 버퍼(Protocol Buffers)를 사용한다. 

프로토콜 버퍼는 csv, Json, xml 과 같은 데이터 구조이다. 프로토콜 버퍼와 다른 데이터 구조와의 차이는 프로토콜 버퍼의 경우 구글에서 제작하였고 직렬화가 바이너리 파일로 되면서 속도가 좀 더 빠르다는 장점이 존재한다. 

 

** MSA 외부의 REST API와 통신하고 싶은 경우 gRPC - gateway 를 사용해 주면된다.**

 

정말 gRPC의 장점과 사용하는 경우에 대해서 공부해 보았다.

사실 생소한 개념이기도 하고 좀 더 깊어질 수록 자료가 많지 않은거 같다.  다음에는 직접 구현해보면서 공부를 진행해보아야겠다. 

 

gRPC를 접하면서 가장 처음으로 뱅크샐러드의 글을 접했는데 이해하는데 도움이 많이 되었다.

아래의 링크이다. 개발하면서 마주한 문제들을 볼 때 어떠한 것을 고려하였는지 알 수 있어서 좋았다.

 

https://blog.banksalad.com/tech/production-ready-grpc-in-golang/?gclid=EAIaIQobChMIha2ghPHi6gIVRWoqCh0XRQBBEAMYASAAEgI9GfD_BwE#%EC%99%9C-grpc%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%EA%B0%80

 

프로덕션 환경에서 사용하는 golang과 gRPC | 뱅크샐러드

안녕하세요, 뱅크샐러드 엔지니어링 파운데이션의 정겨울입니다. 뱅크샐러드는 마이크로 서비스 환경에서 다양한 언어와 프로토콜을 활용해 서비스를 운영하고 있습니다. 하나의 서비스는 요�

blog.banksalad.com

 

'DevOps > MSA' 카테고리의 다른 글

[gRPC : Node.js] Node.js에서 gRPC 설치  (0) 2020.08.05
Comments