Problema de acumulación de mensajes en la cola de mensajes

La acumulación de mensajes es normal y es necesario solucionar cada vez más atrasos.

La razón principal es que para la mayoría de las empresas que utilizan colas de mensajes **, la capacidad de procesamiento de la cola de mensajes en sí es mucho mayor que la del sistema empresarial **. Para un solo nodo de la cola de mensajes principal, el rendimiento del envío y recepción de mensajes puede alcanzar el nivel de procesamiento de decenas de miles a cientos de miles de mensajes por segundo, y la capacidad de procesamiento se puede duplicar al expandir horizontalmente el número de instancias de Corredor.

La lógica empresarial que necesita procesar un sistema empresarial general es mucho más compleja que la de una cola de mensajes: un solo nodo puede procesar de cientos a miles de solicitudes por segundo, lo que puede considerarse un rendimiento muy bueno. Por lo tanto, para la optimización del rendimiento de la cola de mensajes, nos preocupa más cómo funciona nuestro código comercial con la cola de mensajes en ambos extremos del envío y recepción de mensajes para lograr el mejor rendimiento .

1. Optimización del rendimiento del remitente

El rendimiento de procesamiento del código de servicio del remitente en realidad no está relacionado con la cola de mensajes, porque el remitente generalmente ejecuta primero su propia lógica comercial y finalmente envía el mensaje. Si dice que el rendimiento de su código al enviar mensajes no mejora, primero debe verificar si es porque la lógica comercial antes de enviar el mensaje lleva demasiado tiempo.

2. Optimización del rendimiento del consumidor

Cuando se utilizan colas de mensajes, la mayoría de los problemas de rendimiento se producen en el lado del consumidor. Si la velocidad de consumo no puede mantenerse al día con la velocidad de producción de mensajes del remitente, se producirá una acumulación de mensajes. Si el problema de este rendimiento al revés es sólo temporal, entonces el problema no es grande. Mientras el rendimiento del lado del consumidor se recupere y supere el rendimiento del lado del remitente, la acumulación de mensajes se puede digerir gradualmente.

Si la tasa de consumo ha sido más lenta que la tasa de producción durante mucho tiempo, todo el sistema tendrá problemas. O el almacenamiento de la cola de mensajes está lleno y no puede proporcionar servicios, o el mensaje se pierde. Esta es una falla grave para el sistema entero.

Por lo tanto, cuando diseñamos el sistema, debemos asegurarnos de que el rendimiento de consumo del extremo del consumidor sea mayor que el rendimiento de transmisión del extremo de producción, para que el sistema pueda continuar funcionando de manera saludable.

Además de optimizar la lógica comercial del consumidor, la optimización del rendimiento del consumidor final también puede mejorar el rendimiento general del consumidor mediante la expansión horizontal y el aumento del número de simultaneidad en el consumidor final. Un punto que necesita atención especial es que mientras se expande el número de instancias de consumidor, el número de particiones (también llamadas colas) en el tema de expansión debe sincronizarse para garantizar que el número de instancias de consumidor y el número de particiones sean iguales. Si el número de instancias de consumidor excede el número de particiones, dicha expansión es realmente ineficaz. Hablamos sobre la razón antes, porque para los consumidores, cada partición en realidad solo puede admitir el consumo de un solo subproceso.

Pila de noticias repentina

O la producción es rápida o el consumo es lento.
Para una gran cantidad de crecimiento comercial en un corto período de tiempo
, 1. Expansión horizontal, aumentar el número de terminales de consumo
2. Degradación comercial, reducir negocios innecesarios

También hay una situación en la que la eficiencia de la producción y el consumo no ha cambiado, pero hay novedades que provocan un consumo repetido y ocupa hilos. En este momento, debe verificar el registro de pila y el registro de consumo para ubicar el mensaje del problema.
Algunos middleware de mensajes proporcionan una función de "cola de mensajes no entregados" , que arroja automáticamente este tipo de mensajes fallidos de consumo repetido a una cola especial de mensajes no entregados. Evite la situación de una cola principal de tarjetas de mensajes.

Supongo que te gusta

Origin blog.csdn.net/u010010600/article/details/108741684
Recomendado
Clasificación