Na razie EMQ (Erlang MQTT Broker) nie wydaje się utrzymywać komunikatów QoS 1/2 na dysku: Jak EMQ utrzymuje komunikaty QoS 1/2?
Dlatego w przypadku nieoczekiwanego ponownego uruchomienia serwera limity pamięci lub inne komunikaty o zdarzeniach mogą zostać utracone, mimo że komunikaty poziomu QoS 1/2 muszą zostać dostarczone przynajmniej raz lub dokładnie raz.
Czy istnieją brokerzy MQTT, którzy przechowują komunikaty QoS 1/2 na dysku, zapewniając w ten sposób dostarczanie?
Odpowiedzi:
Myślę, że Mosquitto zapisuje wiadomości w pamięci na dysk.
źródło
VerneMQ jest przykładem brokera MQTT, który gwarantuje dostarczanie akceptowanych komunikatów QoS1 / 2 zapisywanych na dysk (przy użyciu LevelDB). VerneMQ jest poniekąd podobny do EMQ, ponieważ jest również oprogramowaniem typu open source i obsługuje klastrowanie (chociaż używa innej technologii). Pełne ujawnienie, jestem inżynierem VerneMQ.
źródło
HiveMQ wydaje się zapewniać różne opcje utrwalania danych sesji, w tym komunikaty QoS 1/2.
Opcje trwałości są wymienione tutaj :
Domyślnie HiveMQ użyje trwałości pliku , która zapisuje wszystkie dane na dysku, dzięki czemu można je odzyskać w dowolnym momencie.
źródło