Middleware de mensajes: las ventajas y desventajas de MQ y la comparación de cada middleware de mensajes

1. ¿Qué es MQ?

       La cola de mensajes (MQ) 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 dentro y fuera de la cola, sin la necesidad de una conexión dedicada para vincularlos.

       Lo anterior es la definición de MQ de Baidu Baike. En pocas palabras, MQ se utiliza para la transferencia de datos entre sistemas. Por ejemplo, si hay una transferencia de mensajes entre el sistema A y el sistema B, nuestra forma común puede ser que un sistema proporcione una interfaz y otro sistema llame a la interfaz para transferir datos para satisfacer las necesidades comerciales. Sin embargo, una mejor forma es utilizar colas de mensajes. Suponiendo que el sistema A necesita entregar un mensaje al sistema B, el sistema A puede escribir un mensaje en la cola de mensajes y el sistema B puede monitorear la cola de mensajes. Cuando hay un mensaje, el sistema B puede tomar el mensaje de la cola de mensajes para su consumo .

2. Ventajas de MQ

       Puede preguntar: Es obvio que la comunicación entre sistemas se puede realizar llamando a la interfaz, ¿por qué usar MQ? El uso de MQ ciertamente tiene sus beneficios, los principales beneficios son tres puntos: desacoplamiento, asincrónico y recorte de picos.

3. Desventajas de MQ

1. Se reduce la disponibilidad del sistema. Por ejemplo, si se introduce MQ en el sistema, ¿qué debo hacer si falla MQ? Una vez que el MQ cuelga, la comunicación entre los sistemas se desconecta por completo, lo que hace que el sistema no esté disponible. Esto sucede en la realidad. En términos generales, cuantas más dependencias externas se introduzcan, más frágil será el sistema y cada dependencia provocará el colapso de todo el sistema.
2. Mayor complejidad del sistema. Originalmente, el sistema se puede llamar directamente a través de la interfaz. Si se introduce MQ, se deben considerar varias situaciones de MQ, como: consumo repetido de mensajes, pérdida de mensajes, orden de consumo garantizado, etc ..., para que el sistema Cada vez más complicado.
3. Problemas de coherencia de datos. Por ejemplo, el sistema A ya ha devuelto al cliente la operación exitosa En este momento, la operación BC es exitosa, pero la operación D falla, dando como resultado datos inconsistentes.

       Por lo tanto, en el desarrollo de la función normal del software, no es necesario buscar deliberadamente los escenarios de uso de la cola de mensajes, sino que, cuando hay un cuello de botella en el rendimiento, se debe verificar si hay una operación que requiere mucho tiempo y que se puede procesar de forma asíncrona en la lógica empresarial y, si existe, se puede introducir. Cola de mensajes para resolver. De lo contrario, el uso ciego de las colas de mensajes puede aumentar el costo de mantenimiento y desarrollo, pero no puede obtener una mejora considerable del rendimiento, entonces la ganancia no vale la pena perder.

 

 

Durante el desarrollo, qué middleware de mensajes debe seleccionarse, aquí hay algunos consejos:

1. ActiveMQ ya no se recomienda, porque la comunidad es muy activa y ya nadie la mantendrá. Una vez que ocurre un problema durante el uso, es más difícil encontrar una solución;

2. RabbitMQ ahora se usa más, el rendimiento ha llegado a diez mil y el retraso es bajo, una de las mejores ventajas es que proporciona un sistema de gestión de back-end, muy útil para pequeñas y medianas empresas; al mismo tiempo Desde un punto de vista, la comunidad también es relativamente activa. La desventaja es que el lenguaje de desarrollo utiliza el lenguaje erlang. Para los desarrolladores de Java, el lenguaje erlang es más difícil de entender y no se puede estudiar en profundidad y sólo se puede utilizar de forma sencilla.

3. Alibaba de RocketMQ es de código abierto y ahora la comunidad es relativamente activa, está desarrollada en lenguaje Java y admite clústeres distribuidos. Pero existe el riesgo de que se desaproveche. Una vez que Ali no se mantiene en cualquier momento, puede descartarse. Si se trata de una gran empresa con la capacidad, está bien que estudie el código fuente y lo mantenga usted mismo. Si es una empresa pequeña, entonces se enfrentará.

4. Kafka se utiliza principalmente en el campo de los macrodatos. Su principal ventaja es su alto rendimiento y también se distribuye 

 

 

 

 

 

Supongo que te gusta

Origin blog.csdn.net/bj_chengrong/article/details/102689117
Recomendado
Clasificación