중간 시스템의 경우 ZeroMQ를 Pub-Sub (서비스 버스 스타일) 인프라로 테스트하고 있습니다. 약 50 개의 노드가 있고 모두 게시자와 구독자 여야합니다. 네트워크는 별 모양의 토폴로지이지만 가장자리는 서로 "대화"합니다. 동적 검색 (참여자의 네트워크 주소를 하드 코딩 할 필요 없음)과 SPOF (Single Point of Failure)가 필요합니다.Mediator가없는 ZeroMQ Pub-Sub + Dynamic Discovery
나는 http://zeromq.org/whitepapers:0mq-3-0-pubsub을 읽었으며 동적 탐색을 위해 제안 된 0MQ 방법은 구독 및 게시를 전달하는 프록시 노드 (XPUB/XSUB)와 관련됩니다. (A) 프록시 노드가 SPOF - 전체 시스템이 작동하지 않을 때 (B) 프록시 노드가 시스템에서 중앙 중개자로 사용한다고 생각했지만이 아키텍처에 대해 다음과 같은 우려가 있습니다. 데이터를 포함한 모든 트래픽은 프록시 노드를 통과하므로 대기 시간이 &이고 성능 문제가 발생합니다.
pub-sub 백서를 올바르게 이해했다고 가정하면 ZeroMQ에서 pub-sub + dynamic-discovery + no-SPOF를 달성하는 비교적 간단한 방법이 있습니까?
추가 요점 : 대부분의 메시지에는 관심이있는 단원이 하나 많지 않으므로 멀티 캐스트 (PGM) 솔루션이 제외되었으므로 네트워크가 과밀 사용되는 것을 원하지 않습니다.
는 사실은 내가 제안 된 솔루션에 뭔가를 이해하지 않습니다 어떤 가입자가 구독하면, 라운드 로빈 DNS가있는 몇 가지 (? 단일) 프록시로 리디렉션됩니다 일부 LTM에 가입 메시지를 리디렉션합니다 구독 신청.이 프록시 시스템이 다운되면 구독이 손실됩니다. – dux2
감사. 이 솔루션에서 각 프록시의 게시자 목록을 정적으로 구성하지 않으려면 어떻게해야합니까? 늦게 가입 한 게시자는 어떻게 처리합니까? 필자는 게시자가 시작할 때 각 프록시에 대한 존재를 "발표"한다고 생각할 수 있습니다. 그러면 프록시가 모든 구독을 새 게시자에게 보냅니다. 프록시가 충돌로부터 어떻게 복구합니까? 모든 가입자로부터 재 구독을 요청하거나 구독을 영구 보존해야합니다. 이 모든 것이 가능하지만 작성해야 할 코드가 많아서 자신의 pub-sub를 처음부터 개발하는 것과 거의 같습니다. – dux2
다시 업데이트되었습니다. 도움이되기를 바랍니다. – raffian