- RPC ( Remote Procedure Call ) 는 원격에 있는 함수를 호출해주는 프로세스 간 통신 기술 입니다.
- 플랫폼에 제약 없이 사용 할 수 있어 분산 시스템 기법에 효과적 입니다.
- RPC 는 IDL ( Interface Definition Language ) 를 사용하여 인터페이스를 명시합니다.
- 대표적인 구현체
- Google → Protobuf ( grpc )
- Facebook → Thrift
- Twiter → Finalge
RPC 동작 흐름
- 그래서 RPC 를 왜 사용하는가?
- MSA 구조를 알고 있는가?
MSA 구조를 사용하게 되면서 다양한 언어와 프레임워크로 개발됩니다.
- MSA 과 같은 다양한 환경으로 개발되는 구조에서 프로토콜을 맞춰 통신해야하는 비용이 발생하게 됩니다.
→ 서로 통신을 하기위해서 필요한 메시지로 변환 작업을 거쳐야 합니다.
- RPC 를 이용하여 언어에 구애받지 않고 원격에 있는 프로시저를 호출하여 원격 코드의 함수를 호출하는 것처럼 사용할 수 있습니다.
- 즉, 클라이언트가 다양한 언어로 구축된 여러 서버와 통신하기 위해서 각 프로토콜에 대한 규약을 별도로 생성치 않고 IDL 을 통해서 원격의 함수를 호출하기 위한 기술이라고 볼 수 있다.
Protobuf와 Thrift를 알아보자!