Czy istnieją brokerzy MQTT, którzy utrzymują komunikaty QoS 1/2 na dysku?

12

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?

Ghanima
źródło

Odpowiedzi:

9

Myślę, że Mosquitto zapisuje wiadomości w pamięci na dysk.

wytrwałość [prawda | false] Jeśli true, dane połączenia, subskrypcji i wiadomości zostaną zapisane na dysku w mosquitto.db w miejscu podyktowanym przez lokalizację_procentową. Gdy komar zostanie zrestartowany, ponownie załaduje informacje zapisane w mosquitto.db. Dane będą zapisywane na dysku po zamknięciu komara, a także w okresowych odstępach czasu określonych przez autosave_interval. Zapis bazy danych trwałości może być również wymuszony przez wysłanie komara sygnału SIGUSR1. W przypadku wartości false dane będą przechowywane tylko w pamięci. Domyślnie false.

Ross
źródło
7

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.

Lars Hesel Christensen
źródło
Pytanie poboczne: Czy oferowaliście publicznego brokera VerneMQ do testowania i oceny?
Ross
1
Cześć @ Ross, mamy publiczną instancję działającą na public.vernemq.com:1883, ale nie byłoby tam możliwości testowania obciążenia, ponieważ działa ona na małej maszynie wirtualnej - więc nie oczekuj, że będzie bardzo wydajna . Ma również ograniczenia dotyczące liczby jednoczesnych połączeń pochodzących z jednego adresu IP. Jeśli chcesz, możesz skontaktować się z nami, a my z przyjemnością sprawdzimy, czy możemy wesprzeć Twój przypadek użycia. Możesz napisać do nas na info na vernemq dot com lub wypełnić formularz kontaktowy tutaj: vernemq.com/services.html
Lars Hesel Christensen
1
Dzięki, nie muszę przeprowadzać testów obciążenia, aby sprawdzić, czy mogę połączyć się z różnymi brokerami i sprawdzić, czy występują problemy ze zgodnością.
Ross
1
Przypomina mi to, że wersja publiczna jest stosunkowo stara - zobaczę, czy nie mogę jej dzisiaj zaktualizować do najnowszej wersji.
Lars Hesel Christensen
5

HiveMQ wydaje się zapewniać różne opcje utrwalania danych sesji, w tym komunikaty QoS 1/2.

Opcje trwałości są wymienione tutaj :

  • Trwałość plików
  • Trwałość w pamięci

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.

Aby zagwarantować spójność danych między restartami brokera, HiveMQ domyślnie używa trwałości dysku. Oznacza to, że nawet jeśli broker zatrzyma się lub ulegnie awarii, wszystkie dane zostaną zachowane, a po ponownym uruchomieniu broker może kontynuować działanie, jakby nic się nie wydarzyło.

Aurora0001
źródło