July 27, 2013

Bidirectional RPC in go

예를 들어, Master Server와 Master의 지령을 받는 Worker Daemon가 있다고 하자. Master가 특정 Task를 Worker에 요청을 하려고 하는데, 여러가지 이유로 Master가 Worker에 접속을 하는 구조가 아닌, Worker가 실행할때 Master에 접속 할수만 있다고 하자. (특히 내부 IP만 가진 Worker라면 Master가 Worker에 접속을 할수가 없다.) ThriftRPC나 MsgpackRPC의 구조를 보면, Client/Server 구조로 Client가 Server의 Procedure을 원격 실행하는 방법만 지원한다. (Thrift에서 양방향 RPC을 쓰고 싶다면 http://joelpm.com/2009/04/03/thrift-bidirectional-async-rpc.html 을 참고,써보지는 않았다. 자바만 지원.) 밑으로 내려가서 보면, TCP은 기본적으로 Full-duplex 데이터 전달이 가능하다. Read more

© 2019. All rights reserved.

Powered by Hugo & Kiss.