Regolazione della velocità di una configurazione MQTT


1

Ho un problema che sto cercando di risolvere, che sembra un problema comune e quindi probabilmente ha una soluzione comune sotto forma di un protocollo di rete. La mia conoscenza dei protocolli di rete è piuttosto limitata e non riesco a trovare un protocollo esistente per risolvere questo problema utilizzando la ricerca di Google se l'utilizzo di un protocollo diverso è la soluzione di cui ho effettivamente bisogno.

La mia configurazione

Usando MQTT, ho un solo produttore che pubblica messaggi su un argomento e potenzialmente diversi consumatori che si iscrivono a quell'argomento. Il produttore può produrre messaggi a una determinata velocità massima. Ogni consumatore desidera elaborare i messaggi a una velocità unica per quel singolo consumatore. Se un consumatore riceve messaggi a una velocità superiore a quella che può elaborare, può semplicemente eliminare i messaggi.

La mia preoccupazione

Ad esempio, potrei avere un produttore in grado di trasmettere immagini a dire 100 immagini al secondo, ma i miei 2 consumatori possono consumarle solo a una velocità di 8 al secondo e 5 al secondo rispettivamente. Per conservare le risorse di rete, il tasso ottimale di pubblicazione qui sarebbe di 8 immagini al secondo.

Il mio pensiero

Un modo per farlo funzionare è far sì che produttori e consumatori si colleghino a un servizio comune di "negoziazione dei tassi" il cui scopo sarebbe quello di modificare la velocità con cui l'editore sta emettendo messaggi sull'argomento condiviso.

Domanda

Dovrei considerare di utilizzare un altro protocollo per questo scopo o ci sarebbe qualcos'altro che dovrei considerare per aiutarmi a risolvere questo problema e risolvere il mio problema?


@PimpJuiceIT: Sto cercando di conservare le risorse (in particolare la larghezza di banda della rete ma anche la memoria e la CPU) utilizzando solo ciò che è necessario e sto cercando di capire se esiste un protocollo esistente che mi aiuterà a farlo o se devo inventare il mio. Un vincolo chiave è che i client hanno bisogno delle informazioni più recenti possibili e gettano via tutti i messaggi ricevuti prima dell'ultimo. Voglio evitare gli sprechi. Se l'editore sta pubblicando troppo in fretta, ho bisogno di un metodo per i clienti per dire che rallenta a un tasso specifico.
Alex Ryan,

@PimpJuiceIT: il nostro bisogno è molto specifico. I consumatori devono avere l'ultima immagine inviata dal produttore. I clienti impiegano molto più tempo per elaborare l'immagine rispetto alla velocità con cui le immagini possono essere prodotte, ma i tempi di elaborazione di ciascun consumatore variano. Dobbiamo assolutamente avere la capacità per i consumatori di dire al produttore la velocità con cui vorrebbero ricevere immagini e per il produttore di decidere quale sia la tariffa ottimale. Senza questo stiamo sprecando risorse che non possono essere utilizzate per altre cose che dobbiamo fare. Non vedo come il protocollo MQTT "gestisca questo per me".
Alex Ryan,

@PimpJuiceIT Non è una limitazione client. È un requisito duro, veloce e inalterabile. Questa è la necessità. Se la tecnologia non soddisfa l'esigenza, è necessario trovare una soluzione. MQTT è un protocollo di messaggistica di basso livello. La mia intuizione è che se esiste un protocollo di negoziazione dei tassi, è un protocollo di livello superiore più generico di MQTT che è solo uno dei molti modi di fare pubsub. La domanda è stata riscritta da qualcuno che ha ipotizzato che la soluzione al problema risiedesse nel protocollo MQTT, ma questo nell'improbabile IMHO.
Alex Ryan,

Va bene, quindi vuoi usare un altro protocollo e non MQTT poiché non è sufficiente nella tua configurazione: hai già fatto una ricerca su Google per " Protocolli di dati M2M o IOT " e hai fatto la tua giusta parte dei compiti sull'argomento? Quali sono i tuoi pensieri dopo la tua valutazione mentre aspetti che gli altri ti diano una risposta altrimenti? Non vedo l'ora di sapere cosa trovi che funzioni meglio nel tuo ambiente e confermi che è adeguato e sufficiente per la necessità.
Pimp Juice IT
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.