Existe-t-il des courtiers MQTT qui conservent les messages QoS 1/2 sur le disque?


11

À l'heure actuelle, l' EMQ (Erlang MQTT Broker) ne semble pas conserver les messages QoS 1/2 sur le disque: comment EMQ persiste-t-il les messages QoS 1/2?

Ainsi, en cas de redémarrage inattendu du serveur, les limites de mémoire ou d'autres messages d'événement peuvent être perdus malgré le fait que les messages de niveau QoS 1/2 doivent être remis au moins ou exactement une fois.

Existe-t-il des courtiers MQTT qui conservent les messages QoS 1/2 sur le disque garantissant ainsi la livraison?


Réponses:


8

Je pense que Mosquitto enregistre les messages en mémoire sur le disque.

persistance [vrai | false] Si vrai, les données de connexion, d'abonnement et de message seront écrites sur le disque dans mosquitto.db à l'emplacement dicté par persistence_location. Lorsque le moustique est redémarré, il rechargera les informations stockées dans mosquitto.db. Les données seront écrites sur le disque à la fermeture du moustique et également à des intervalles périodiques tels que définis par autosave_interval. L'écriture de la base de données de persistance peut également être forcée en envoyant le moustique au signal SIGUSR1. Si faux, les données seront stockées en mémoire uniquement. La valeur par défaut est false.


7

VerneMQ est un exemple de courtier MQTT qui garantit la livraison des messages QoS1 / 2 acceptés lors de leur écriture sur le disque (à l'aide de LevelDB). VerneMQ est, en quelque sorte, similaire à EMQ en ce qu'il est également open-source et prend en charge le clustering (bien qu'il utilise une technologie différente). Divulgation complète, je suis ingénieur VerneMQ.


Question secondaire: Avez-vous proposé au courtier VerneMQ public de tester et d'évaluer?
Ross

1
Salut @ Ross, nous avons une instance publique qui s'exécute sur public.vernemq.com:1883, mais vous ne seriez pas en mesure de faire des tests de charge car elle s'exécute sur une petite machine virtuelle - alors ne vous attendez pas à ce qu'elle soit très performante . Il a également des restrictions sur le nombre de connexions simultanées provenant d'une seule IP. Si vous souhaitez, vous pouvez nous contacter et nous serons heureux de voir si nous pouvons prendre en charge votre cas d'utilisation. Vous pouvez nous écrire à info à vernemq dot com ou remplir le formulaire de contact ici: vernemq.com/services.html
Lars Hesel Christensen

1
Merci, je n'ai pas besoin de faire de test de charge, juste pour vérifier que je peux me connecter à différents courtiers et voir s'il y a des problèmes de compatibilité.
Ross

1
Cela me rappelle, la version publique est relativement ancienne - je vais voir si je ne peux pas la mettre à jour vers la dernière version aujourd'hui.
Lars Hesel Christensen

5

HiveMQ semble fournir diverses options pour conserver les données de session, y compris les messages QoS 1/2.

Les options de persistance sont répertoriées ici :

  • Persistance du fichier
  • Persistance en mémoire

Par défaut, HiveMQ utilise la persistance de fichier , qui enregistre toutes les données sur le disque afin de pouvoir les récupérer à tout moment.

Afin de garantir la cohérence des données entre les redémarrages du courtier, HiveMQ utilise la persistance du disque par défaut. Cela signifie que même si le courtier s'arrête ou se bloque, toutes les données seront conservées et après un redémarrage, le courtier peut continuer son fonctionnement comme si de rien n'était.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.