Anpassen der Rate einer MQTT-Konfiguration

420
Alex Ryan

Ich habe ein Problem, das ich zu lösen versuche. Das fühlt sich an, als sei es ein allgemeines Problem und hat daher wahrscheinlich eine gemeinsame Lösung in Form eines Netzwerkprotokolls. Mein Wissen über Netzwerkprotokolle ist etwas begrenzt und ich kann kein vorhandenes Protokoll finden, um dieses Problem mithilfe der Google-Suche zu lösen, wenn die Verwendung eines anderen Protokolls die Lösung ist, die ich tatsächlich brauche.

Meine Konfiguration

Mit MQTT habe ich einen einzigen Produzenten, der Nachrichten zu einem Thema veröffentlicht, und möglicherweise mehrere Verbraucher, die dieses Thema abonnieren. Der Produzent kann Nachrichten mit einer bestimmten maximalen Rate erzeugen. Jeder Verbraucher möchte Nachrichten mit einer Geschwindigkeit verarbeiten, die für diesen einzelnen Verbraucher eindeutig ist. Wenn ein Verbraucher Nachrichten schneller empfängt als er verarbeiten kann, kann er Nachrichten einfach wegwerfen.

Mein Konzern

Zum Beispiel könnte ich einen Produzenten haben, der Bilder mit einer Geschwindigkeit von beispielsweise 100 Bildern pro Sekunde pushen kann, aber meine 2 Verbraucher können sie nur mit einer Rate von 8 pro Sekunde bzw. 5 pro Sekunde verbrauchen. Um Netzwerkressourcen zu schonen, wäre die optimale Veröffentlichungsrate hier 8 Bilder pro Sekunde.

Mein Gedanke

Eine Möglichkeit, dies zu erreichen, besteht darin, die Produzenten und Verbraucher mit einem gemeinsamen Tarifverhandlungsdienst in Verbindung zu setzen, dessen Zweck darin bestehen würde, die Rate zu ändern, mit der der Herausgeber Nachrichten zu dem freigegebenen Thema sendet.

Frage

Sollte ich in Betracht ziehen, ein anderes Protokoll für diesen Zweck zu verwenden, oder sollte es etwas anderes geben, das ich in Betracht ziehen sollte, um mir zu helfen, dieses Problem zu lösen und mein Problem zu lösen?

1
@PimpJuiceIT: Ich versuche, Ressourcen zu sparen (insbesondere Netzwerkbandbreite, aber auch Speicher und CPU), indem ich nur das Nötige benutze und versuche herauszufinden, ob es ein vorhandenes Protokoll gibt, das mir dabei hilft oder ob ich muss erfinde meine eigenen Eine wesentliche Einschränkung ist, dass die Clients die neuesten Informationen benötigen und alle vor der letzten empfangenen Nachrichten wegwerfen. Ich möchte Verschwendung vermeiden. Wenn der Publisher zu schnell publiziert, brauche ich eine Methode, mit der die Kunden auf eine bestimmte Rate verlangsamen können. Alex Ryan vor 6 Jahren 0
@PimpJuiceIT: Unser Bedarf ist sehr spezifisch. Die Verbraucher müssen das aktuellste Bild vom Hersteller erhalten. Die Clients benötigen viel mehr Zeit für die Verarbeitung des Bildes als für die Geschwindigkeit, mit der die Bilder erzeugt werden können, wobei jedoch die Verarbeitungszeit jedes Verbrauchers variiert. Wir müssen unbedingt die Möglichkeit haben, dass der Verbraucher dem Erzeuger die Rate mitteilt, zu der er Bilder erhalten möchte, und dass der Hersteller entscheiden kann, welche die optimale Rate ist. Ohne dies verschwenden wir Ressourcen, die dann nicht für andere Dinge verwendet werden können, die wir tun müssen. Ich sehe nicht, wie das MQTT-Protokoll dies "nur für mich erledigt". Alex Ryan vor 6 Jahren 0
@PimpJuiceIT Es ist keine Clienteinschränkung. Es ist eine harte und schnelle und unveränderliche Anforderung. Das ist das Bedürfnis. Wenn die Technologie den Bedarf nicht erfüllt, muss ein Workaround gefunden werden. MQTT ist ein Nachrichtenprotokoll auf niedriger Ebene. Meine Intuition ist, dass, wenn ein Ratenverhandlungsprotokoll vorhanden ist, es ein generischeres Protokoll auf höherer Ebene als MQTT ist, was nur eine von vielen Möglichkeiten ist, Pubsub zu betreiben. Die Frage wurde von jemandem neu geschrieben, der die Lösung des Problems für das MQTT-Protokoll annahm. Dies war jedoch für IMHO unwahrscheinlich. Alex Ryan vor 6 Jahren 0
Okay, Sie möchten also ein anderes Protokoll und nicht MQTT verwenden, da dies in Ihrer Konfiguration nicht ausreicht. Haben Sie bereits eine Google-Suche nach "* M2M- oder IOT-Datenprotokollen *" durchgeführt und zu diesem Thema Ihre Hausaufgaben gemacht? Was sind Ihre Gedanken nach Ihrer Beurteilung, während Sie auf andere warten, um Ihnen eine Antwort zu geben? Ich freue mich darauf zu hören, was Ihrer Meinung nach in Ihrer Umgebung am besten funktioniert, und Sie bestätigen, dass es für den Bedarf ausreichend und ausreichend ist. Pimp Juice IT vor 6 Jahren 0

0 Antworten auf die Frage