Notas de estudio: protocolo de transmisión ActiveMQ

Protocolo de transmisión ActiveMQ

Protocolos de red compatibles con ActiveMQ

Configuración diferente, el rendimiento de MQ es diferente

Visite el sitio web oficial: https://activemq.apache.org/connectivity

 

 

(1) Protocolo de control de transmisión (TCP) - 默认

1. Esta es la configuración predeterminada del Broker. El cliente TCP escucha en el puerto 616162. Antes de que los datos se transmitan a través de la red, los datos deben serializarse. El mensaje se serializa en un flujo de bytes a través de un protocolo de cable.

2. De forma predeterminada, ActiveMQ llama al protocolo de cable OpenWire y su propósito es promover la eficiencia y la interacción rápida de datos en la red.

3. La forma URI de la conexión TCP es como: tcp: // nombre de host: puerto? key = value & key = value, los siguientes parámetros son opcionales

4. Ventajas de la transmisión TCP:
(4.1) La transmisión del protocolo TCP tiene una alta confiabilidad y una gran estabilidad.

(4.2) Alta eficiencia: transmisión de flujo de bytes, alta eficiencia
(4.3) Efectividad y usabilidad: amplia aplicación, compatible con cualquier plataforma                                                                                                        

5. Para conocer los parámetros configurables del protocolo de transporte, consulte el sitio web oficial: http://activemq.apache.org/configuring-version-5-transports.html

 

2) Nuevo protocolo API de E / S (NIO)

Los protocolos de comunicación cliente-intermediario admitidos por ActiveMQ son: TCP, NIO, UDP, SSL, Http (s), VM.

El archivo para configurar el conector de transporte se encuentra en la etiqueta <transportConnectors> en conf / activemq.xml del directorio de instalación de activeMQ.
 

1. El protocolo NIO es similar al protocolo TCP, pero NIO se centra más en las operaciones de acceso subyacentes. Permite a los desarrolladores tener más llamadas de cliente y llamadas del lado del servidor al mismo recurso.

Carga pesada

2. Escenarios adecuados para utilizar el protocolo NIO:

(2.1) Puede haber una gran cantidad de Clientes para conectarse al Broker. En general, una gran cantidad de Clientes para conectarse al Broker está restringida por los subprocesos del sistema operativo. Por lo tanto, la implementación de NIO requiere menos subprocesos para ejecutarse que TCP, por lo que se recomienda utilizar el protocolo NIO

(2.2) Puede haber una transmisión de red muy lenta para Broker, NIO proporciona un mejor rendimiento que TCP.

3. La forma URI de la conexión NIO: nio / hostname: port? Key = value

4. Ejemplo de configuración del conector de transporte, consulte el sitio web oficial:

http://activemq.apache.org/configuring-version-5-transports.html
 

 

El transporte NIO

Igual que el transporte TCP, excepto que se utiliza el paquete New / O (NIO), que puede proporcionar un mejor rendimiento. El paquete Java NIO no debe confundirse con el paquete AlO4J de IBM.

Para cambiar de TCP a Nlo, simplemente cambie la parte del esquema de la URl. A continuación, se muestra un ejemplo definido en el archivo de configuración XML de un corredor.
 

<broker>
  ...
  <transportConnectors>
    <transportConnector name="nio" uri="nio://0.0.0.0:61616"/>  
  </<transportConnectors>
  ...
</broker>

 

3) protocolo AMQP

Es decir, el Protocolo de cola de mensajes avanzado, un protocolo de cola de mensajes avanzado estándar de la capa de aplicación que proporciona servicios de mensajería unificada, es un desarrollo del protocolo de la capa de aplicación.

Estándares de lanzamiento, diseñados para middleware orientado a mensajes. Los clientes y el middleware de mensajes basados ​​en este protocolo pueden transmitir mensajes y no se ven afectados por los diferentes productos de cliente / middleware.

Restricciones en el desarrollo del lenguaje y otras condiciones.

ActiveMQ admite el protocolo AMQP 1.0, que es un estándar OASIS.
 

Disponibilidad

Disponible a partir de la versión 5.8 de ActiveMQ.

Habilitación del agente de ActiveMQ para AMQP

Para habilitar la compatibilidad con el protocolo AMQP en el agente, agregue la siguiente configuración del conector de transporte que hace referencia al esquema amqp en su URL:

<transportConnectors>
    <transportconnector name="amqp"uri="amqp://0.0.0.0:5672"/>
</transportConnectors>


Está habilitado en la configuración predeterminada del servidor ActiveMQ. Para obtener más ayuda, consulte Ejecutar Broker.
 

(4) protocolo MQTT

 

MQTT (Message Queue Server Telemetry Transport) es un protocolo de mensajería instantánea desarrollado por IBM, que puede convertirse en el Internet de las cosas.

partes importantes de. El protocolo es compatible con todas las plataformas y puede conectar casi todos los elementos en red al exterior, y se puede utilizar como sensores y actuadores (como comunicaciones

El protocolo de comunicación de las casas de conexión a través de Twitter).

Demasiado perezoso para leer la versión oficial del sitio web: https://s2.ax1x.com/2019/08/29/mL4W38.png
 

Habilitación de ActiveMQ Broker para MQTT

Es muy fácil habilitar ActiveMQ para MQTT. Simplemente agregue un conector al corredor usando la URL de MQTT.

<transportConnectors>
   <transportConnector name="mqtt" uri="mqtt://localhost:1883"/>
</transportConnectors>

 

(5) Protocolo de capa de sockets seguros (SSL)

Forma URL de conexión: ssl: // nombre de host: puerto? clave = valor

2. Ejemplo de configuración del conector de transporte:

<transportConnectors>
   <transportConnector name="ssl" uri="ssl://localhost:61618?trace=true"/>
</transportConnectors>

 


 

6) acuerdo STORM

STOMP, Streaming Text Orientated Message Protocol, es un Streaming Text Orientated Message Protocol, una especie de Message Oriented Message Protocol (MOM).

Middleware, un protocolo de texto simple diseñado por middleware orientado a mensajes.

Visite el sitio web oficial: https://activemq.apache.org/stomp
 

(7) Protocolo WebSocket-ws

O visite el café web oficial: https://activemq.apache.org/websockets

 

2.3, mejora del rendimiento de NIO


(1) Después de configurar NIO, el rendimiento debería ser correcto. ¿Hay alguna optimización adicional?

El encabezado del formato URI comienza con "nio", lo que indica que este puerto utiliza el modelo de E / S de red NIO basado en el protocolo TCP. Pero este método de configuración solo puede hacer que este final

El puerto admite el protocolo Openwire. ¿Cómo hacer que este puerto admita el modelo de E / S de red NIO y que admita múltiples protocolos?

(2) Utilice la palabra clave auto

Sigue siendo el sitio web oficial para visitar: https://activemq.apache.org/auto

Habilitación de AUTO sobre NIO


Para configurar la detección automática de formato de cable de ActiveMQ a través de una conexión NIO TCP, utilice el prefijo de transporte auto + nio. Por ejemplo, agregue la siguiente configuración de transporte en su archivo XML:
 

 

3) Utilice el símbolo "+" para establecer varias características para el puerto

Si no especifica los puertos de escucha de red de ActiveMQ, estos puertos utilizarán el modelo de E / S de red BIO. (OpenWire, STOMP, AMQP ..

…)

Entonces, para mejorar el rendimiento de la red de un solo nodo primero, necesito especificar claramente el modelo de E / S de red activa, como se muestra a continuación: El encabezado del formato URI comienza con "nio", tabla

Muestra que este puerto utiliza el modelo de E / S de red NIO basado en el protocolo TCP.
 

 

 


 

Supongo que te gusta

Origin blog.csdn.net/m0_46405589/article/details/115131113
Recomendado
Clasificación