2012-05-08 11 views
6

No tengo una consulta específica aquí; Solo necesito algunas pautas de diseño.MQTT vs MQ consideraciones de diseño

Me encontré con este artículo en Node.js , MQTT and Websockets. Supongo que podemos lograr un propósito similar usando Node/Java + ActiveMQ + Websockets. Mi consulta es cómo seleccionar entre MQ y MQTT? ¿Puedo usar de forma segura un servidor "abierto" como mosquitto en un proyecto de mediana a gran escala, en comparación con ActiveMQ?

This article ha tenido alguna idea, y parece que debería usar tanto MQ como MQTT, ya que MQTT podría ayudar si obtengo clientes livianos en el futuro.

Gracias!

Respuesta

5

Agregando a lo Shashi ha dicho, éstos tienen diferentes capacidades y casos de uso.

MQTT define un protocolo de cable estándar para pub/sub y, como señaló Shashi, está diseñado para entornos muy livianos. Como tal, tiene un formato de cableado muy mínimo, algunas cualidades básicas de servicio y un conjunto básico de características. Los sistemas tradicionales de colas de mensajes, por otra parte, son generalmente de propiedad (aunque AMQP pretende cambiar eso), cubren tanto punto a punto como pub/sub, ofrecen muchas cualidades de servicio y tienden a tener un formato de cable más pesado. , aunque existe para admitir conjuntos de características mejoradas como direccionamiento de respuesta, conversión de protocolos, etc.

Un buen ejemplo de MQTT sería donde tiene puntos finales en teléfonos, tabletas y decodificadores. Estos tienen una potencia, memoria y recursos del sistema mínimos. Normalmente, las conexiones de estos permanecen en MQTT y se comunican entre sí, o se conectan a un MQ de clase empresarial donde se pueden intercomunicar con aplicaciones de back-end. Por ejemplo, un cliente de chat basado en MQTT podría hablar directamente con otro a través del intermediario MQTT. Alternativamente, un sistema de entrega de contenido basado en MQTT se uniría a una red de mensajería empresarial que alojaría los anuncios y otro contenido que se entregaría a las aplicaciones que se ejecutan en teléfonos y tabletas. El back-end de la empresa gestionaría todas las estadísticas de publicación de anuncios y vistas en las que se basa la facturación, y el tramo MQTT permite que el contenido se empuje con un consumo mínimo de batería o caballos de fuerza en el dispositivo del usuario final.

Por lo tanto, MQTT se utiliza para sistemas integrados y dispositivos de usuario final donde la potencia, el ancho de banda y la estabilidad de la red son problemas. Esto a menudo se combina con la mensajería MQ tradicional, aunque nunca he visto que MQTT se utilice como transporte exclusivo para aplicaciones de mensajería tradicionales. Presumiblemente, esto se debe a que MQTT carece de algunas de las funciones más sólidas, como la correlación de mensajes, el direccionamiento de respuesta y el direccionamiento punto a punto que han sido fundamentales para la mensajería durante 20 años.

+0

¡Gracias por los ejemplos! – SlowAndSteady

2

El protocolo MQTT es adecuado para dispositivos pequeños como sensores, teléfonos móviles, etc. que tienen una huella de memoria pequeña. Estos dispositivos típicamente se ubican en una red frágil y típicamente tienen baja potencia de computación.

Estos dispositivos se conectan a una red de back-end de organizaciones a través del protocolo MQTT para enviar y recibir mensajes. Por ejemplo, un sensor de temperatura en un oleoducto recolectaría la temperatura del aceite que fluye a través del tubo y lo enviaría al centro de control. En respuesta, un mensaje de comando podría enviarse a través de MQTT a otro dispositivo para reducir/detener el flujo de aceite a través de esa tubería.

WebSphere MQ tiene la capacidad de enviar/recibir mensajes a/desde los dispositivos MQTT. Por lo tanto, si planea implementar una solución basada en mensajes que involucre sensores de dispositivos &, puede considerar MQ y MQTT.

HTH

1

Como ya se ha mencionado, MQTT define un protocolo de cable aplicativo (es decir, cómo se organiza y luego se serializa la información, antes de transferirla). mosquitto, o lo que sea intermediario MQTT otra cosa, es sólo una implementación de la Hub and Spoke Integration Pattern, al igual que los corredores basados ​​en JMS y AMQP, la diferencia consiste en el protocolo hilo a nivel de transporte: AMQP define un protocolo de conexión de transporte normalizado, en lugar corredores JMS como ActiveMQ define su propio formato de propiedad, es decir, el OpenWire. Por supuesto, las implementaciones no estándar, como Mosquitto, implementan un protocolo patentado de transporte de cables (esto afecta la interoperabilidad, pero puede ser una mejor opción en términos de prestaciones).

Volver a la pregunta. Los agentes como Mosquitto se pueden usar en escenarios reales, de acuerdo con sus necesidades en términos de escalabilidad y confiabilidad: normalmente, la agrupación es necesaria para garantizarlo. Disponibilidad, ii. Confiabilidad y iii. Escalabilidad Los corredores pensaron en PAN (Private Area Netorks), normalmente no proporcionan características de OTB (Out of The Box), ActiveMQ lo proporciona.

Concluyendo, depende de sus necesidades elegir la mejor solución.