2017-11-15 6 views
0

Kann ich reine Multicasting im Pub/Sub-Protokoll des Nanomsg haben. Da N Abonnenten an bestimmten Daten für einen einzelnen Publisher interessiert sein können, fließen die gleichen abonnierten Daten in N verschiedenen Streams. Wenn meine Bandbreite für einen einzelnen Stream 10 MB beträgt, beträgt die für N Streams benötigte Bandbreite 10 * N. somit gibt es eine Erhöhung der Bandbreite. Können wir diese Bandbreite reduzieren, wie wir es beim Multicasting tun? Kann mir jemand zu diesem Thema helfen?Nanomsg Multicast Bandbreite Problem

Antwort

0

Soweit ich das PUB/SUB-Muster verstehe, werden die Daten nacheinander an alle Teilnehmer gesendet. Wenn ein Abonnent nicht bereit ist, ihn zu übernehmen, werden die Daten gelöscht. Ich glaube, dass die Daten in PUB/SUB sequenziell gesendet werden.

Sie können jedoch besser steuern, wie Daten gesendet werden, wenn Sie PUSH/PULL-Muster verwenden. Sie können N PULLer und einen PUSHer haben. Der PUSHer sendet die Daten nacheinander an alle PULLer. Der Unterschied besteht darin, dass Sie das Timing steuern können und Sie auf langsamere PULLer warten können.

Wenn Sie nicht mehrere Übertragungen mögen, ist der einzige andere Mechanismus, den ich denken kann, ein gemeinsamer Speicher. Ein Absender und mehrere Nehmer. Dieses Szenario gilt jedoch nur für einen einzelnen Computer.

Also, die Antwort ist Nein. Sie können nicht pure Multi-Casting in Nanomsg Pub/Sub-Protokoll haben. Wenn Sie ein reines Multicast benötigen, müssen Sie sich die anderen Protokolle ansehen. Vielleicht eingehende nng könnte es über UDP bereitstellen.

Wenn Multicast ein Muss ist, müssen Sie andere Protokolle überprüfen, siehe z. B. NACK-Oriented Reliable Multicast (NORM).