¿Hay intermediarios MQTT que persisten los mensajes de QoS 1/2 en el disco?

11

A partir de ahora, el EMQ (Erlang MQTT Broker) no parece persistir los mensajes de QoS 1/2 en el disco: ¿Cómo EMQ persiste los mensajes de QoS 1/2?

Por lo tanto, en caso de un reinicio inesperado del servidor, los límites de memoria u otros mensajes de evento pueden perderse a pesar de que los mensajes de nivel de QoS 1/2 deben entregarse al menos o exactamente una vez.

¿Hay intermediarios MQTT que persisten los mensajes de QoS 1/2 en el disco para garantizar la entrega?

Ghanima
fuente
2
Eche un vistazo a iot.stackexchange.com/questions/784/…
hardillb

Respuestas:

8

Creo que Mosquitto guarda los mensajes en memoria en el disco.

persistencia [verdadero | falso] Si es verdadero, los datos de conexión, suscripción y mensaje se escribirán en el disco en mosquitto.db en la ubicación dictada por persistence_location. Cuando se reinicia mosquitto, volverá a cargar la información almacenada en mosquitto.db. Los datos se escribirán en el disco cuando se cierre mosquitto y también a intervalos periódicos según lo definido por autosave_interval. La escritura de la base de datos de persistencia también puede ser forzada enviando mosquitto a la señal SIGUSR1. Si es falso, los datos se almacenarán solo en la memoria. Por defecto es falso.

Ross
fuente
7

VerneMQ es un ejemplo de un agente MQTT que garantiza la entrega de mensajes aceptados de QoS1 / 2 a medida que se escriben en el disco (usando LevelDB). VerneMQ es, en cierto modo, similar a EMQ en que también es de código abierto y admite la agrupación en clúster (aunque utiliza una tecnología diferente). Revelación completa, soy ingeniero de VerneMQ.

Lars Hesel Christensen
fuente
Pregunta secundaria: ¿Ofrecieron ustedes el corredor público VerneMQ para pruebas y evaluación?
Ross
1
Hola @Ross, tenemos una instancia pública ejecutándose en public.vernemq.com:1883, pero no podrás realizar pruebas de carga allí, ya que se está ejecutando en una pequeña máquina virtual, así que no esperes que sea muy eficiente . También tiene restricciones en la cantidad de conexiones concurrentes que se originan desde una sola IP. Si lo desea, puede contactarnos y nos complacerá ver si podemos apoyar su caso de uso. Puede escribirnos a info en vernemq dot com o completar el formulario de contacto aquí: vernemq.com/services.html
Lars Hesel Christensen
1
Gracias, no necesito hacer pruebas de carga, solo para verificar que puedo conectarme a diferentes corredores y ver si hay algún problema de compatibilidad.
Ross
1
Eso me recuerda que la versión pública es relativamente antigua. Veré si no puedo actualizarla a la última versión de hoy.
Lars Hesel Christensen
5

HiveMQ parece proporcionar varias opciones para conservar los datos de la sesión, incluidos los mensajes QoS 1/2.

Las opciones de persistencia se enumeran aquí :

  • Persistencia de archivo
  • Persistencia en memoria

De forma predeterminada, HiveMQ utilizará la persistencia del archivo , que guarda todos los datos en el disco para poder recuperarlos en cualquier momento.

Para garantizar la coherencia de los datos entre los reinicios del agente, HiveMQ utiliza la persistencia del disco de forma predeterminada. Eso significa que incluso si el intermediario se detiene o se bloquea, todos los datos se conservarán y, después de un reinicio, el intermediario puede continuar su operación como si nada hubiera pasado.

Aurora0001
fuente