¿Qué debo hacer si falla el mensaje enviado mediante el middleware de mensajes MQ?
JMS es una especificación técnica para la prestación de servicios de mensajería. Formula todas las estructuras de datos y procesos de interacción en todo el proceso de prestación del servicio de mensajería. Activemq, por otro lado, es un servicio de cola de mensajes, la implementación definitiva de Middleware orientado a mensajes (MOM) y un verdadero proveedor de servicios.
Un estándar o protocolo jms. Normalmente se utiliza para mensajería de aplicaciones de nivel empresarial. Hay principalmente mensajes de tema (de 1 a muchos) y mensajes de cola (de 1 a 1).
Existen otras implementaciones de jboss.
Introducción a MQ:
MQ se conoce como Message Queue Server (MQ) y es un método de comunicación de aplicación a aplicación. Las aplicaciones se comunican escribiendo y recuperando datos (mensajes) específicos de la aplicación de las colas sin requerir una conexión dedicada para conectarlas. El paso de mensajes ocurre cuando los programas se comunican entre sí enviando datos en mensajes, en lugar de llamarse entre sí directamente, lo que a menudo se usa para técnicas como llamadas a procedimientos remotos. Las colas se refieren a aplicaciones que se comunican a través de colas. El uso de colas elimina la necesidad de que las aplicaciones de recepción y envío se ejecuten simultáneamente.
Características de MQ:
MQ es un representante típico del modelo consumidor-productor, en el que un extremo de la cola escribe continuamente mensajes en la cola, mientras que el otro extremo puede leer o suscríbete a la cola.
MQ es similar a JMS, pero la diferencia es que JMS es el estándar y la definición API del servicio de middleware de mensajería Java de SUN, mientras que MQ es el estándar y la definición API del servicio JMS de SUN, y MQ son los estándares de SUN. y definiciones de API para servicios JMS.
MQ es la definición estándar y API del servicio SUN JMS, mientras que MQ es una implementación y un producto específico que sigue el protocolo AMQP.
Escenarios de uso:
En el proyecto, algunas operaciones que no requieren retorno inmediato y llevan mucho tiempo se extraen para el procesamiento asincrónico. Este procesamiento asincrónico ahorra en gran medida el tiempo de respuesta de las solicitudes. , mejorando así el rendimiento del sistema.
Introducción a JMS:
JMS es la interfaz de programación de aplicaciones de Java Message Service. Es una API de middleware orientada a mensajes (MOM) en la plataforma Java y se utiliza para enviar mensajes entre ellos. aplicaciones o sistemas distribuidos para comunicación asíncrona. Java Message Service es una API independiente de la plataforma y la mayoría de los proveedores de MOM brindan soporte para JMS.
Definición:
JMS (Java Messaging Service) es una especificación técnica para middleware orientado a mensajes (MOM) en la plataforma Java, que proporciona una interfaz estándar que facilita el intercambio de mensajes entre aplicaciones Java en un sistema de mensajería y simplifica el desarrollo de aplicaciones empresariales, el Java Messaging Service.
Introducción:
JMS es una API independiente del proveedor para acceder a mensajes para enviar y recibir mensajes del sistema. Es similar a JDBC (Java): aquí, JDBC es una API que se puede utilizar para acceder a muchas bases de datos relacionales diferentes, mientras que JMS proporciona el mismo acceso independiente del proveedor a los servicios de envío y recepción de mensajes. Actualmente, JMS cuenta con el respaldo de muchos proveedores, incluidos MQSeries de IBM, el servicio Weblogic JMS de BEA y SonicMQ de Progress, entre otros. JMS le permite enviar mensajes de un cliente JMS a otro a través de servicios de envío y recepción de mensajes (a veces llamados intermediarios o enrutadores de mensajes). El mensaje es un tipo de objeto en JMS y consta de dos partes: encabezado del mensaje y cuerpo del mensaje.
El encabezado del mensaje consta de información de enrutamiento y metadatos del mensaje. El cuerpo del mensaje, por otro lado, contiene los datos o la carga útil de la aplicación. Dependiendo del tipo de carga útil, los mensajes se pueden dividir en varios tipos, que incluyen: texto simple (TextMessage), objeto serializable (), colección de propiedades (MapMessage), flujo de bytes (), flujo de valor primitivo () y mensaje Ninguno de carga útil (Mensaje). ).
La relación entre JMS y MQ:
JMS es una especificación técnica para proporcionar servicios de mensajería. Especifica todas las estructuras de datos y procesos de interacción en todo el proceso de prestación de servicios de mensajería. MQ, por otro lado, es un servicio de cola de mensajes, la implementación definitiva del middleware orientado a mensajes (MOM), y un verdadero proveedor de servicios puede basarse en JMS u otras especificaciones o estándares;
MQ de código abierto con soporte JMS:
La opción más popular actualmente es ActiveMQ.
ActiveMQ es el bus de mensajes de código abierto más popular y potente de Apache. ActiveMQ es una implementación de proveedor JMS que es totalmente compatible con las especificaciones JMS1.1 y J2EE 1.4. Aunque la especificación JMS desapareció hace mucho tiempo, JMS todavía juega un papel especial en las aplicaciones J2EE actuales.
Características principales:
1. Los clientes pueden escribirse en múltiples idiomas y protocolos. Idiomas: Java, C, C#, Ruby, Perl, Python, PHP: soporte completo para las especificaciones JMS1.1 y J2EE 1.4 (persistencia, mensajes XA, transacciones)
3. ActiveMQ se puede integrar fácilmente en sistemas Spring y también admite funciones Spring 2.0
4 mediante pruebas de servidores J2EE comunes (como Geronimo, JBoss 4, GlassFish, WebLogic), por lo tanto, mediante la configuración de JCA. 1.5, ActiveMQ se puede implementar automáticamente en cualquier servidor comercial compatible con J2EE 1.4
5. Admite múltiples protocolos de transmisión: ActiveMQ admite múltiples protocolos de transmisión, como JMS1.1, mensajes XA, transacciones, etc.
6. Admite múltiples protocolos de transmisión: in-VM, TCP, SSL, NIO, UDP, JGroups, JXTA
6. Admite transmisión de alta velocidad proporcionada por JDBC Persistencia y registro de mensajes. persistencia de mensajes
7. Diseño para garantizar un clúster de alto rendimiento, cliente-servidor, punto a punto
8. Soporte Ajax
9. Admite integración con Axis
10 Puede llamar fácilmente a proveedores JMS integrados para realizar pruebas
11 ActiveMQ es muy rápido en términos generales, puede utilizar un proveedor JMS
. 12. ActiveMQ suele ser más rápido que jbps. Muy rápido; normalmente 10 veces más rápido que jbossMQ.
Ventajas: Es un componente (marco) de mensajería rápido de código abierto que admite la integración perfecta de clústeres, redes equivalentes, detección automática, TCP, SSL, transmisión, persistencia, contenedores XA y J2EE1.4, y admite la mayoría de los clientes multilingües en contenedores livianos y máquinas virtuales Java. La recepción de mensajes asincrónica reduce el acoplamiento de la integración multisistema del software. Los mensajes se reciben de manera confiable, lo que garantiza que se almacenen de manera confiable en el middleware. Varios mensajes también pueden formar transacciones atómicas.
Desventajas: la configuración predeterminada de ActiveMQ tiene un rendimiento bajo y debe optimizarse, pero el archivo de configuración es complejo y ActiveMQ en sí no proporciona herramientas de administración, hay menos códigos de muestra que la documentación en la página de inicio; relativamente completo, pero carece de una organización efectiva. De esta manera, el documento es solo un fragmento y es difícil para los usuarios entenderlo desde lo más superficial a lo más profundo. En segundo lugar, el documento en general es demasiado profesional. Durante la fase de investigación, puede consultar la lista de correo, consultar el Javadoc y analizar el código fuente para comprenderlo.