Linux (서버) 호스트의 한 응용 프로그램이 VM의 Win7 (클라이언트) 응용 프로그램과 통신하기를 원합니다. 선택의 여지는 ZeroMQ입니다. 하지만 비동기 작업을 어떻게 관리합니까?비동기 작업. 어떤 아키텍처입니까? (0MQ의 패턴)
예를 들어 보겠습니다. VM의 응용 프로그램은 임의의 간격으로 작업을 생성하고 Linux 상자로 보냅니다. 이것은 처리하지만 답할 시간이 필요합니다. 이 시간에 REQ/REP 패턴의 소켓이 차단되고 WinApp에서 들어오는 작업을 LinuxApp로 전달할 수 없습니다. 어떻게 해결해야합니까? 0MQ가 없더라도 이것이 일반적으로 어떻게 해결됩니까? 서버와 클라이언트를 모두 만들고 두 개의 연결을 설정해야합니까?
요구 사항 :
- 클라이언트는 고유 한 작업 생성기입니다.
- 서버는 연결하는 클라이언트마다 workerthread를 만듭니다. (하나 개의 소켓을 통해 각 클라이언트의 WorkerThread 쌍 사이 REQ/REQ)>
- 서버가 즉시 들어오는 작업을 전달해야합니다 -.
- 서버는 고유 한 클라이언트 사이의 연결의 WorkerThread (일부 tunnle)
- 을 설정합니다.
- 서버는 여러 클라이언트 (WT 연결)를 처리 할 수 있어야합니다.
따라서 REQ/REP/REQ/REP/... 시퀀스를 달성 할 수 없습니다.
다음 링크를 참조하십시오. http://zguide.zeromq.org/page:all#Least-Recently-Used-Routing-LRU-Pattern – gvd
@gvd LRU 정말?!? 내 첫 생각은 오히려 [majordomo] (http://zguide.zeromq.org/page:all#Service-Oriented-Reliable-Queuing-Majordomo-Pattern)와 같지만 클라이언트 요구 사항에 따라 과잉 공격이 될 수 있습니다 (같은 시간에 여러 번) . –
그것도 작동합니다. Mongrel2 does (push/pull and pub/sub)와 같은 여러 패턴을 결합 할 수도 있습니다. – gvd