Ich habe derzeit ein Pub/Sub-System in Betrieb, das es Clients ermöglicht, sich mit einem zentralen Nachrichtenrouting-Dämon zu verbinden, sich für eine Reihe von Nachrichten zu abonnieren und dann loszuplappern. Der Routing-Dämon verfolgt und verwaltet die Nachrichten von Interesse jedes Abonnenten (basierend auf einem einfachen Tag) und liefert die entsprechenden Nachrichten von Interesse aus, sobald die Abonnenten sie produzieren. Jede Verbindung wird im Wesentlichen als potenzieller Publisher ODER Abonnent UND MEISTENS beides betrachtet, der Dämon übernimmt die Routing- und Zustellungsfunktionen nach Bedarf.
Zum Beispiel verbinden sich drei Clients alle und abonnieren ihre Nachrichten-Tag(s) (MT) von Interesse:
Client 1(C1) abonniert MT => 123
Client 2(C2) abonniert MT => 123 & 456
Client 3(C3) abonniert MT => 123 & 456 & 789
C1 produziert MT 456: der Dämon liefert eine Kopie an C2 und C3
C2 produziert MT 123: der Dämon liefert eine Kopie an C1 und C3 (nicht an sich selbst)
C3 produziert MT 999: der Dämon liefert sie an niemanden (niemand hat abonniert)
ZeroMQ wurde in einem Gespräch mit einem Kollegen erwähnt und nachdem ich ein paar Tage damit herumexperimentiert habe, glaube ich nicht, dass ich das richtige Muster für die Implementierung/den Ersatz des derzeitigen Systems sehe. Außerdem würde ich gerne EPGM verwenden, um von den Multicast-Vorteilen zu profitieren und den auf TCP basierenden Dämon, den ich derzeit habe, zu eliminieren.
Irgendwelche Vorschläge?