Ich teste ZeroMQ als Pub-Sub (Service Bus-Stil) infra für ein mittleres System. Wir haben etwa 50 Knoten, alle sollten Publisher und Abonnenten sein. Das Netzwerk ist eine Art Sterntopologie, aber die Kanten "sprechen" miteinander. Wir benötigen eine dynamische Erkennung (keine Notwendigkeit, die Netzwerkadressen der Teilnehmer fest zu codieren), aber auch keinen SPOF (Single Point of Failure).ZeroMQ Pub-Sub + Dynamische Erkennung ohne Mediator
Ich habe gelesen http://zeromq.org/whitepapers:0mq-3-0-pubsub und von dem, was ich verstehe, beinhaltet die vorgeschlagene 0MQ Weg für die dynamische Erkennung einen Proxy-Knoten (XPUB/XSUB), der Abonnements und Publikationen weiterleitet. Ich überlegte, einen solchen Proxy als zentralen Vermittler in unserem System zu verwenden, jedoch habe ich folgende Bedenken mit dieser Architektur: (A) Der Proxy-Knoten ist ein SPOF - wenn es fehlschlägt, funktioniert das ganze System nicht (B) Der gesamte Datenverkehr, einschließlich Daten, wird über den Proxy-Knoten übertragen, was die Latenz & Leistungsproblem bedeutet.
Angenommen, ich verstehe das Pub-Sub-Whitepaper richtig, gibt es einen relativ einfachen Weg, Pub-Sub + Dynamic-Discovery + No-SPOF in ZeroMQ zu erreichen?
Zusätzlicher Punkt: Ich habe Multicast (PGM) -Lösung ausgeschlossen, weil die meisten Nachrichten eine einzelne/wenige interessierte Parteien haben und wir nicht gerne das Netzwerk überladen.
Eigentlich verstehe ich nicht etwas in der vorgeschlagenen Lösung: Wenn jeder Teilnehmer abonniert hat, wird die Round Robin DNS die Abonnementnachricht zu einem gewissen LTM umleiten, das es bis zu einem gewissen (Single?) Umleitet Proxy die halte das Abo.Wenn dieser Proxy-Rechner abstürzt, wird das Abonnement verloren gehen, oder? – dux2
Danke. Wie vermeiden Sie es in dieser Lösung, die Liste der Publisher in jedem Proxy statisch zu konfigurieren? Wie gehen Sie mit einem späteren Publisher um? Ich kann mir vorstellen, dass ein Publisher beim Start die Existenz jedes Proxys "ankündigt" und der Proxy dann alle Abonnements an den neuen Publisher sendet. Wie erholt sich ein Proxy von einem Absturz? Er muss von allen Abonnenten erneute Abonnements anfordern oder Abonnements persistent machen. Das ist alles möglich, aber eine Menge Code zu schreiben, fast wie die Entwicklung eines eigenen Pub-Sub von Grund auf neu. – dux2
Aktualisiert wieder, hoffe es hilft. – raffian