2016-01-26 17 views
5

Utilizzo di mosquitto (http://mosquitto.org/) come broker MQTT e sto cercando consigli sugli utenti che eseguono il bilanciamento del carico (per lo stesso argomento). Come è stato realizzato? Tutto ciò che ho letto sul protocollo afferma che tutti gli utenti dello stesso argomento riceveranno un messaggio pubblicato.Utilizzo di MQTT con più abbonati

Questo sembra inefficiente, e quindi sto cercando un modo per un messaggio pubblicato da dare a uno degli abbonati connessi in un approccio round-robin che assicurerebbe uno stato di bilanciamento del carico.

Se ciò non è possibile con MQTT, in che modo un abbonato evita di essere sommerso dai messaggi?

risposta

6

In genere si progettano applicazioni MQTT in modo da non avere utenti sopraffatti. È possibile ottenere questo diffondendo il carico su diversi argomenti.

Se davvero non si può fare questo, dare un'occhiata ai sottoscrizione condivisa approccio sofisticato broker MQTT come MessageSight e HiveMQ hanno. Questa è esattamente la funzione che stai cercando, ma dipende dal broker e non fa parte delle specifiche ufficiali MQTT.

2

MQTT è un protocollo Pub/Sub, la base è per una distribuzione da 1 a molti messaggi non da 1 a 1 (di molti) che si descrivono. Quello che descrivi sarebbe più simile a un sistema di Accodamento messaggi che è nettamente diverso da Pub/Sub.

Mosquitto come pura implementazione di questo protocollo non supporta la consegna come la descrivi. Una soluzione è per noi una coda locale con nel sottoscrittore a cui vengono aggiunti i messaggi in entrata e quindi consumati da un pool di thread.

Credo che l'appliance IBM Message Sight possa offrire il tipo di recapito di messaggi che si sta cercando come estensione del protocollo chiamato Shared Subscriptions, ma con questa abilitazione si discosta dalla specifica MQTT pura.

+0

Gli abbonamenti condivisi faranno parte della specifica MQTT v5 – hardillb