EMQ (Erlang MQTT Broker) jest „rozpowszechniane masowo skalowalnych, wysoce rozciągliwy wiadomość MQTT broker” o zgłoszonych „1,3 miliona jednoczesnych połączeń MQTT” - tak to potencjalnie pozwala na dużą liczbę klientów do publikowania i do niej zapisać. Wydaje się prawdopodobne, że niektórzy klienci mogą zostać odłączeni w dowolnym momencie.
Jako to pytanie Co się stanie, jeśli w Mosquitto zabraknie pamięci do przechowywania wiadomości QoS 1/2? pyta o Mosquitto:
W MQTT komunikaty z QoS 1 lub 2 muszą być dostarczone co najmniej raz (komunikaty QoS 2 muszą być dostarczone dokładnie raz). Jeśli klient nie jest połączony, broker musi przechowywać wiadomość, dopóki klient nie będzie gotowy do jej odebrania.
Więc w jaki sposób EMQ utrzymuje komunikaty QoS 1/2 do czasu dostarczenia, tj. Ponownego uruchomienia brokera lub w odniesieniu do limitów pamięci?
Odpowiedzi:
Odpowiedź wydaje się brzmieć: tak nie jest . Ten problem na ich trackerze błędów mówi:
Ponadto, po przejrzeniu kilku kolejnych problemów, znalazłem ten raport :
Zasadniczo od wersji 2.0.5:
Nie do końca idealne, ale wydaje się, że takie jest obecne zachowanie, więc jeśli utrwalanie komunikatów ma krytyczne znaczenie dla twojego przypadku użycia, użyj innego brokera.
źródło