2013-11-20 2 views
3

0 또는 1 피어에 연결된 바운드 종점 사이의 통신을위한 ZMQ 가능 솔루션을 찾고 있습니다. 통신은 양방향이며 연결은 언제든지 종료되거나 끊길 수 있습니다. 새로운 피어 또는 동일한 피어와의 연결을 다시 설정할 수 있습니다. 바운드 끝점이 차단되거나 다른쪽에 피어가없는 경우 차단되지 않는지 여부는 중요하지 않습니다.ZMQ 연결 재구성을 통한 일대일 양방향 통신을위한 소켓 솔루션?

이 사용 사례에 가장 적합한 ZMQ 소켓 쌍은 무엇입니까? 처음에는 REP/REQ를 생각했지만 소켓 쌍은 여러 REQ가 하나의 REP에 연결될 수있게 해줍니다. 그것은 또한 누군가가 연결을 끊을 때 "나는 recv/내가 뭔가를 보낼 것"이라는 lockstep 패러다임을 처리 할 필요가있을 것이다. PAIR은 자연스럽게 재 연결을 처리하지 못하기 때문에 나쁘게 보입니다.하지만 "0 또는 1 피어"제한이 있습니다.

제안 사항?

답변

1

짧은 대답 : 불행히도 당신의 요구에 정확히 맞는 패턴은 없습니다.

가장 가까운 패턴은 ZMQ PAIR to PAIR pattern입니다. 그러나 다음과 같은 방법으로 몇 가지 제한 사항이 있습니다 :

ZMQ_PAIR 소켓이 를 통해 스레드 간 통신을 위해 zmq_inproc (7) 전송을 설계하고 자동 재 연결 등의 기능을 구현하지 않습니다. ZMQ_PAIR 소켓은 실험용으로 간주되며 에는 다른 누락되거나 손상된 부분이있을 수 있습니다.

ROUTER 및 DEALER가 가장 유연한 패턴입니다. 필요한 제한을 설정하도록 제어 할 수 있습니다.

+0

예, 자동 연결 논리를 다시 구현하기가 너무 어려워서 DEALER/REQ를 사용하고 Identity를 사용하여 독점 잠금 메커니즘을 구축하는 것이 좋습니다. 당신의 도움을 주셔서 감사합니다. – user104835

관련 문제