Mam pomyślnie skonfigurowany klaster RabbitMQ, który obsługuje MQTT za pośrednictwem wtyczki MQTT. W tej chwili komunikaty MQTT przekazują wymianę tematów, która jest powiązana z kolejką roboczą. Tak więc wszystkie wiadomości MQTT są przechowywane w tej kolejce roboczej.Testowanie wydajności RabbitMQ/MQTT
Teraz chciałbym przetestować wydajność wejścia tego klastra, analizując wykresy wtyczki zarządzania RabbitMQ. Mój plan polegał na założeniu 2 wydawców NodeJS MQTT wystrzeliwujących wiele komunikatów MQTT w pętli for, ale to się nie powiedzie.
Gdy do pętli działa ponad 3000 razy, nie wszystkie komunikaty przeżyć ... (Znajdź mój kod testowy poniżej) Chciałbym mieć swoje zdanie na ten temat:
- Co może być powodem wiadomości nie przeżyjesz?
- Jaki jest najlepszy sposób oceny wydajności RabbitMQ/MQTT?
- Czy powinienem używać wielu wydawców? Gniazdo [kod] => [bufor pamięci klienta] => [send-System:
Kod:
var quantity = 3000;
var mqtt = require('mqtt');
var options = {
host: 'localhost',
port: 1883,
protocolId: 'MQIsdp',
rejectUnauthorized: false,
protocolId: 'MQIsdp',
protocolVersion: 3
};
var client = mqtt.connect(options);
for(var x=0; x<quantity; x++)
{
client.publish('/WSN/N536,563E/dynamic',"22");
console.log(x);
}
client.end();
można spróbować użyć QoS 1 lub 2? –
Aby załadować test brokera MQTT, możesz użyć jakiegoś narzędzia takiego jak https://github.com/emqtt/emqtt_benchmark/ (mimo to trzeba zainstalować Erlang). Lub możesz zrobić to samo, na przykład https://github.com/mqttjs/mqtt-stack/blob/master/benchmark/send.js –
Twoje pytania nie są jasne. Co oznacza "nie przetrwać"? Twój subskrybent nie widzi wszystkich? Google "MQTT QOS". Testowanie wydajności jest skomplikowane. To wszystko nasza firma robi od 20 lat. Na początek musisz zadać sobie DOKŁADNIE to, co testujesz. Następne pytanie brzmi "gdzie jest wąskie gardło?". Ostatnią rzeczą, jakiej pragniesz, jest twoje urządzenie testowe, które będzie wąskim gardłem. Wskazówki na temat problemów można znaleźć na następujących stronach: http://gambitcomm.blogspot.com/2017/09/how-to-right-size-your-iot-platform.html i http://gambitcomm.blogspot.com/ 2016/10/mqtt-performance-methodology-using.html –