Despejando la niebla: uso del seguimiento de mensajes de enlace completo para revelar los misterios del sistema

En un sistema distribuido, una solicitud externa a menudo requiere que varios módulos internos, varios middleware y varias máquinas se llamen entre sí para completarse. En esta serie de llamadas, algunas pueden ser en serie y otras en paralelo, por lo que es muy difícil solucionar problemas y localizarlos.

El análisis de mensajes de enlace completo y el seguimiento de mensajes de enlace completo pueden ayudarnos a resolver este problema. Con base en el análisis completo del mensaje del enlace, al rastrear la ruta de transmisión completa del mensaje, se puede localizar con precisión la ubicación y la causa de la falla, se puede reducir el alcance de la falla y se puede mejorar la eficiencia de la resolución de problemas y la depuración. El seguimiento de mensajes de enlace completo puede rastrear y monitorear la ruta de entrega de mensajes entre microservicios, proporcionando a los equipos de proyecto la ubicación del nodo del servidor, recopilación de información de contexto de excepción, monitoreo/advertencia del estado del servicio, trazabilidad del proceso de ejecución de lógica de negocios clave, análisis de procesos de negocios, operación conveniente y métodos de mantenimiento como el seguimiento lento y la alerta temprana.

Entonces, ¿qué es el seguimiento de mensajes de enlace completo?

PARTE 1 Descubra el misterio del seguimiento de mensajes de enlace completo

El mensaje de extremo a extremo se refiere a un mensaje que se transmite completamente del remitente al receptor en un sistema distribuido de una determinada empresa y puede describir el ciclo de vida completo de la empresa. Incluye la ruta de entrega del negocio en cada enlace del sistema, el contenido del mensaje y la información de contexto relacionada. Los mensajes de enlace completo incluyen, entre otros, los siguientes rangos de mensajes:

El mensaje cubre principalmente lo siguiente:

  • Ruta de entrega del mensaje: el seguimiento de mensajes de enlace completo registra la ruta de entrega del mensaje desde el remitente al receptor, incluidos varios servicios, componentes y nodos que pasan.
  • Estado del mensaje y estado de procesamiento: el seguimiento de mensajes de enlace completo registra el estado de procesamiento de cada nodo en el mensaje, incluido el éxito, el fracaso, el estado anormal, etc., así como información clave y marcas de tiempo durante el proceso de procesamiento.
  • Información de contexto: el seguimiento de mensajes de enlace completo no solo rastrea el mensaje en sí, sino que también registra información de contexto relacionada con el mensaje, como parámetros de solicitud, resultados de respuesta, información de excepción, etc.

Para gestionar y analizar mejor la ruta de transmisión y el estado de los mensajes de enlace completo, proporciona capacidades integrales de análisis y monitoreo de mensajes para facilitar la resolución de problemas, la optimización del rendimiento y la depuración del sistema.

Los mensajes de enlaces abstractos incluyen principalmente:

  • Definir el modelo de mensaje: al definir la estructura y los atributos del mensaje, el mensaje se abstrae en un modelo de datos que se puede gestionar y analizar para hacerlo escalable y flexible. En la actualidad, generalmente definimos información como identificador único, mensaje de solicitud, mensaje de respuesta, mensaje de excepción, información del nodo de la aplicación (IP, puerto, nombre del módulo), tipo de mensaje, tipo de negocio e ID de negocio, lo que facilita la resolución de problemas de excepciones comerciales y excepciones del sistema.
  • Identificar mensajes de forma única: genere un identificador único para cada mensaje para rastrear y correlacionar su entrega y procesamiento en el sistema.
  • Formato de mensaje estandarizado: formule un formato y protocolo de mensaje consistentes, de modo que diferentes componentes y servicios puedan comprender y analizar mensajes, y lograr la abstracción e interoperabilidad de los mensajes.

El propósito del seguimiento de mensajes de un extremo a otro es registrar y rastrear el proceso de entrega de estos mensajes en el sistema, para realizar la visualización, monitoreo y análisis de todo el enlace de entrega del mensaje.

Una operación comercial completa generalmente implica colaboración y entrega de mensajes entre múltiples servicios. Los mensajes de enlace completo pueden abarcar múltiples servicios, middleware y otros componentes, desde el remitente a través de una serie de nodos intermedios, y finalmente llegar al receptor. Al rastrear el mensaje de enlace completo, puede comprender el flujo y el proceso de procesamiento del mensaje en el sistema, incluida información como la hora de envío del mensaje, la ruta de entrega y el tiempo de procesamiento del nodo intermedio.

Cuando un sistema externo ingresa al sistema, los registros habituales solo van al nivel de la interfaz, es decir, los parámetros de entrada y salida antes y después de la solicitud y el tiempo correspondiente. Sin embargo, en el modo de diseño del seguimiento de mensajes de enlace completo, la información solicitada por la interfaz es solo una parte y es necesario registrar los mensajes de lógica de negocios intermedios desde el principio hasta el final de la interfaz. Depende de la granularidad de cada sistema empresarial.

PARTE 2 Cuatro pasos para implementar el seguimiento completo de mensajes de enlace

Paso 1: análisis del enlace de datos

  • Determinar la fuente de datos

En primer lugar, es necesario aclarar la fuente de datos en el sistema empresarial, incluida la fuente de los datos de entrada y el destino de los datos de salida. Esto puede incluir bases de datos, interfaces API, colas de mensajes, archivos de registro, etc.

  • Identificar enlace de datos

De acuerdo con las funciones y el flujo de datos del sistema empresarial, identifique los distintos enlaces y componentes del enlace de datos. Esto se puede hacer analizando procesos comerciales, diagramas de arquitectura del sistema y documentos relacionados.

  • definir enlace de datos

Defina datos claros de entrada y salida, así como procedimientos de conversión y procesamiento de datos para cada enlace de enlace de datos. Aclare el método de transferencia de datos y las reglas entre cada enlace.

  • flujo de datos de seguimiento

Realizar un seguimiento del flujo de datos en los sistemas empresariales con los medios y herramientas adecuados. Puede utilizar el registro, la supervisión de la cola de mensajes, las consultas de bases de datos, etc. para obtener información detallada sobre el flujo de datos.

  • Análisis de enlace de datos

En función de la información del flujo de datos rastreada, se realiza el análisis del enlace de datos. Esto incluye identificar problemas como cuellos de botella, retrasos, errores y pérdida de datos en los enlaces de datos. Al analizar el enlace de datos, se puede encontrar el enlace que causa el problema y se pueden proporcionar las sugerencias de optimización y mejora correspondientes.

Paso 2: análisis del flujo de datos

En todo el seguimiento de mensajes de enlace, el seguimiento y análisis del flujo de datos es un paso clave, y el seguimiento del flujo de datos generalmente se realiza enterrando o interceptando nodos clave en el sistema. Cuando un mensaje pasa por estos nodos, se registrará información relevante, como el contenido del mensaje, la marca de tiempo, el remitente y el receptor, etc. Esta información se puede capturar y almacenar para su posterior análisis y seguimiento.

Actualmente, existen tres formas de realizar un seguimiento de los datos de los enlaces en nuestro patrón de diseño.

  • Método de implementación basado en registros

El método de implementación basado en registros es una forma común de seguimiento completo de enlaces de mensajes. Implementa el seguimiento y monitoreo de mensajes registrando información de registro relevante en cada servicio o componente. El siguiente es el flujo del método de implementación basado en registros:

Una implementación basada en registros es relativamente simple y fácilmente extensible porque aprovecha los mecanismos y herramientas de registro ya existentes. Sin embargo, también tiene algunas limitaciones, como el aumento del volumen de registros, la sobrecarga de la entrega de registros y los desafíos de la entrega de contexto a través de los límites del servicio. Por lo tanto, en aplicaciones prácticas, generalmente es necesario combinar otras tecnologías y métodos, como el rastreo inyectado y los sistemas de rastreo integrados, para lograr un rastreo de enlace completo de mensajes más completo y eficiente.

  • Método de implementación basado en inyección

El método de implementación basado en inyección es otra forma común de seguimiento completo de enlaces de mensajes. Implementa el seguimiento y monitoreo de mensajes insertando código en cada servicio o componente a lo largo de la ruta de entrega del mensaje. El flujo del método de implementación basado en inyección es el siguiente:

El método de implementación basado en inyección tiene alta flexibilidad y precisión porque puede insertar lógica de seguimiento directamente en el código. Sin embargo, también requiere modificación e inyección de código en cada servicio o componente, lo que es más invasivo para el código existente. Además, el método de implementación inyectado puede requerir más trabajo de desarrollo y soporte técnico para garantizar la lógica de seguimiento y la recopilación de datos correctas.

  • Método de implementación basado en AOP (programación orientada a aspectos)

A juzgar por los dos métodos de implementación anteriores, son relativamente intrusivos para los códigos del sistema existente y no son el método más amigable para los sistemas de producción que ya están en operación, y son altamente personalizados y difíciles de expandir y mantener. Por lo tanto, existe un tercer método de implementación: la implementación de registros de mensajes basada en AOP.

AOP abstrae el punto de recopilación de información transversal de la lógica empresarial, de modo que la realización del punto de recopilación de información se puede concentrar en un solo lugar, lo que mejora la modularización y la mantenibilidad del código y reduce la redundancia del código. En segundo lugar, AOP centraliza más la configuración y gestión de los puntos de recopilación de información y puede gestionar y modificar la realización de los puntos de recopilación de información de manera más conveniente.

El método de implementación basado en AOP, por supuesto, también tiene sus propios pasos de implementación únicos:

A través del método de implementación basado en AOP, la lógica de seguimiento se puede insertar en la llamada al método clave o en la entrega del mensaje para realizar un seguimiento completo del enlace de los mensajes. Este método tiene una gran flexibilidad y escalabilidad y se puede aplicar a sistemas distribuidos.

Paso 3: almacenamiento de datos

El almacenamiento e indexación de datos de seguimiento es un paso fundamental a la hora de implementar el seguimiento completo de mensajes de enlace. El almacenamiento e indexación de datos de seguimiento permite una rápida recuperación, análisis y consulta de mensajes, lo que respalda tareas como la resolución de problemas, la optimización del rendimiento y la supervisión del sistema. Se utilizan los siguientes métodos de almacenamiento de datos:

  • Almacenamiento de base de datos : cada mensaje se puede utilizar como un registro, incluidos los campos relacionados (como el identificador de seguimiento del enlace, la marca de tiempo, el identificador único del mensaje, la ruta de entrega, etc.). Los datos de seguimiento se pueden recuperar y analizar de forma flexible utilizando la función de consulta de la base de datos.
  • Seguimiento de motores de búsqueda : para admitir consultas y recuperación de datos rápidas, así como una búsqueda difusa de datos de mensajes, se pueden utilizar motores de búsqueda para admitir consultas de datos complejas. Usamos Elasticsearch como motor de almacenamiento para los detalles de los mensajes, combinado con el almacenamiento de la base de datos, para acelerar la consulta de datos de seguimiento mediante la creación de índices. Se pueden crear índices basados ​​en campos clave de mensajes (como identificadores de seguimiento de enlaces, marcas de tiempo) para localizar y acceder rápidamente a datos de seguimiento.

Además de la selección de middleware para el almacenamiento de datos, también es necesario desacoplar el proceso de almacenamiento de datos del sistema empresarial para evitar reducir el rendimiento de las funciones normales del sistema empresarial.

La siguiente figura es el proceso de almacenamiento de datos:

  • Primero, después de que los datos se recopilan a través del punto enterrado, el mensaje se puede serializar y almacenar en la caché de Redis con la estructura de [índice + datos completos del mensaje];
  • En el segundo paso, la información de índice importante se encapsula en un cuerpo de mensaje y se coloca en la cola de mensajes de forma sincrónica;
  • Luego consuma el mensaje de la cola de mensajes en la aplicación de almacenamiento de mensajes, obtenga los datos reales de Redis de acuerdo con el índice del mensaje, escríbalos en la base de datos y en Elastic Search, y complete la persistencia del mensaje de enlace.

Paso cuatro: visualización de datos

Visualizar los datos de seguimiento es un paso clave para realizar el seguimiento de mensajes de enlace completo, lo que puede ayudar a los desarrolladores y al personal de operación y mantenimiento a comprender y analizar el proceso y el rendimiento de la entrega de mensajes de manera más intuitiva.

  • Diagrama de flujo de datos de seguimiento: utilice herramientas de diagrama de flujo (como Graphviz, Mermaid, AntV G6) para dibujar un diagrama de flujo de datos de seguimiento que muestre la ruta de transmisión de mensajes en el sistema y el proceso de procesamiento de los nodos intermedios.
  • Línea de tiempo y vista de registro: al mostrar la marca de tiempo y la secuencia de eventos de los datos de seguimiento en la línea de tiempo, puede tener una comprensión más clara de la secuencia de entrega y el intervalo de tiempo de los mensajes. La vista de registro puede mostrar la información detallada de cada mensaje, incluido el contenido del mensaje, el contexto y los registros de procesamiento, etc.
  • Diagrama de topología y diagrama de dependencia: utilice herramientas de diagrama de topología (como D3.js, Neo4j) para dibujar un diagrama de topología de datos de seguimiento, que muestre la relación y las dependencias entre servicios.

Supongo que te gusta

Origin blog.csdn.net/whalecloud/article/details/132150409
Recomendado
Clasificación