Ich habe eine App, die Nachrichten auf einem epgm PUB-Socket an eine oder mehrere epgm SUB-Sockets sendet. Die Dinge funktionieren meistens, aber wenn eine abonnierende Anwendung lange genug belassen wird, wird es im Allgemeinen am Ende eine Nachricht oder ein paar Nachrichten verpassen. (Meine Nachrichten haben Sequenznummern, sodass ich feststellen kann, ob sie fehlen oder nicht in Ordnung sind.) Basierend auf meiner Lektüre der ZMQ-Dokumente hätte ich gedacht, dass die "zuverlässige Multicast" -Natur von epgm verhindern würde, dass dies geschieht Nachdem ein SUB-Socket eine Nachricht erhalten hat, wird diese immer bis zum Herunterfahren oder bis zu schwerwiegenden Netzwerkproblemen (dh die Verbindung ist ausgereizt) erhalten.
Wie auch immer, das ist der Kontext, aber die Frage ist nur der Titel: Welche Zuverlässigkeit garantiert (falls überhaupt) ZMQ für PUB / SUB über epgm machen?
Die PGM-Implementierung in ZeroMQ verwendet ein speicherinternes Fenster zur Wiederherstellung und ist daher nur von kurzer Dauer. Wenn die Wiederherstellung aufgrund der Erschöpfung des Fensters fehlschlägt: Wenn beispielsweise die Veröffentlichung schneller erfolgt als eine Wiederherstellung bis zum Übergang, wird der zugrunde liegende PGM-Socket zurückgesetzt und mit bestem Aufwand fortgesetzt.
Dies bedeutet bei hohen Datenraten oder erheblichem Paketverlust, dass der Transport ständig zurückgesetzt wird und Sie Nachrichten löschen, die nicht wiederhergestellt werden können: daher ist eine zuverlässige Zustellung nicht garantiert.
Die PGM-Konfiguration ist auf Echtzeitübertragung ausgerichtet, so dass langsame Empfänger den Sender nicht blockieren können. Das Protokoll unterstützt beide Paradigmen, aber das letztere wurde aufgrund mangelnder Nachfrage nicht implementiert.
ZeroMQ macht genau eine Garantie: Alle Nachrichten sind vollständig - Sie erhalten niemals Teilnachrichten. Es gibt keine Garantie für die Zuverlässigkeit. Sie sollten die Dokumentation des High-Water-Mark (HWM) -Verhaltens prüfen, das die häufigste Ursache für gelöschte Nachrichten ist, wie in die selbstmörderische Schnecke .
Tags und Links zeromq