RPC는 Remote Procedure Call의 약자로 원격 장비에 있는 함수나 메서드를 실행하는 방법
이다.
Thrift
페이스북에서 만들어졌고 현재는 아파치 소프트웨어 재단에서 관리하고 있다.
<목표 3가지>
<Thrift의 서비스 정의>
struct User {
1: string name,
2: i32 id,
3: string email
}
struct Error {
1: i32 code,
2: string detail
}
struct Users {
Error createUser(1: User user)
}
Protocol Buffer
<Protocol Buffer의 서비스 정의>
service Users {
rpc CreateUser (User) returns (Error) {}
}
message User {
required string name = 1;
required int32 id = 2;
optional string email = 3;
}
message Error {
optional code int32 = 1
optional detail string = 2
}
RPC의 이름 지정
Go 코드 내에서 메서드를 작성하는 것과 같은 방식을 사용
해야 한다.# HTTP 메서드
GET /v1/users
# RPC 메서드
Users.v1.Users
GET /v1/users/123434
# HTTP 메서드
DELETE /v1/users/123123
#RPC 메서드
Users.v1.DeleteUser