작성
·
203
0
안녕하세요 강의 잘 듣고있습니다. RPC 통신에 대해서 질문드리겠습니다.
질문1. RPC도 결국 네트워크상에서 서버-클라이언트간의 통신이라면, HTTP 프로토콜을 통해 통신하는 것인가요? 헤더와 바디를 담은 요청 메시지를 보내고 응답 메시지를 받고 하는 형식으로 통신하는게 맞나요?
질문 2.
질문1의 답이 YES라면 궁금한 점이 하나 더 있습니다.
그렇다면 RPC는 API 호출을 통해 이뤄지는 일반적인 서버-클라이언트 통신과 어떤 부분이 다른건가요?
질문 3. RPC통신에서 바인딩 문제를 해결하는 방안으로
1. 고정 포트 주소 사용
2. matchmaker를 통해 포트번호를 알아낸 후 메시지 전송
위 두 가지 방법이 있다는 것을 책을 통해 알았습니다.
이 중 더 자주 사용되는 방법은 무엇인가요? 그리고 2번 방법의 경우, 한 번 포트번호를 알아내면 그 다음부터는 matchmaker를 거칠 필요 없이 계속 그 포트로 보내면 되는 건가요?
감사합니다!
답변 1
0
안녕하세요?
1.
RPC의 구현체는 CORBA도 있고, 자바의 RMI도 있기 때문에
RPC의 하부 프로토콜을 뭘 쓸지는 구현체마다 다릅니다.
HTTP를 쓰기 보다는 TCP 레이어 위에 바로 구현되는 것으로 아는데
정확한 것은 더 찾아봐야 될 것 같습니다.
2.
서버-클라이언트 통신과 달리, RPC는 그냥 로컬에서의 함수 호출 처럼
사용할 수 있다는 것이 차이점입니다.
3.
더 자주 사용되는 방식이라는 기준은 애매한데요,
가능하면 matchmaker를 사용하는 것이 확장성이 좋겠지요.
하지만 서버 포트가 하나 뿐인데 matchmaker를 하나 이상 쓰는 것은
불필요한 일이 되겠지요.
상세한 답변 감사드립니다 교수님~