Red de conocimiento informático - Problemas con los teléfonos móviles - SpringCloud: seguimiento de registros de detectives (14)

SpringCloud: seguimiento de registros de detectives (14)

Spring Cloud Sleuth[slu?θ] es un componente de seguimiento de la cadena de servicios del sistema distribuido proporcionado por Spring Cloud. Se basa en gran medida en Dapper de Google y Zipkin de Twitter.

Escenario:

Problema:

?En microservicios (generalmente divididos en múltiples servicios según módulos comerciales), la interfaz del proyecto iniciará una solicitud El backend puede llamar a varios servicios para cumplir con la solicitud (como se muestra en la figura siguiente).

?Si el sistema se hace cada vez más grande, las llamadas y las relaciones entre servicios se volverán muy complicadas si es necesario llamar a una solicitud a través de múltiples servicios y uno de los servicios se bloquea debido a retrasos en la red. Por otras razones, en este momento necesitamos analizar qué servicio tiene el problema, lo cual será muy difícil de analizar. La función de seguimiento de enlaces de servicio de Spring Cloud Sleuth puede ayudarnos a encontrar rápidamente la causa raíz del error y monitorear y analizar el rendimiento de cada enlace de solicitud, etc.

Spring Cloud Sleuth es una poderosa herramienta para implementar el seguimiento de registros en aplicaciones. Utilice la biblioteca Sleuth para tareas programadas, servicios multiproceso o solicitudes web complejas, especialmente en sistemas compuestos por múltiples servicios. Cuando diagnosticamos problemas en estas aplicaciones, puede resultar difícil determinar qué acciones deben asociarse con una solicitud, incluso para el registro.

?Si desea diagnosticar operaciones complejas, una solución común es pasar una ID única a cada método en la solicitud para identificar el registro. En cambio, Sleuth se integra fácilmente con los marcos de registro Logback y SLF4J para utilizar registros para rastrear y diagnosticar problemas agregando identificadores únicos.

?El seguimiento de microservicios (detective) es en realidad una herramienta que puede rastrear el proceso de las solicitudes de los usuarios en todo el sistema distribuido (incluida la recopilación de datos, la transmisión de datos, el almacenamiento de datos, el análisis de datos y la visualización de datos), mediante Al capturar estos datos de seguimiento, puede crear una vista de microservicio de toda la cadena de llamadas, que es una herramienta clave para depurar y monitorear microservicios.

SpringCloudSleuth tiene 4 funciones:

Configurar el nombre de la aplicación utilizada para la salida del registro.

Descripción:

Nombre de la aplicación: el nombre de la aplicación, que es una propiedad configurada por el parámetro spring.application.name en application.properties.

traceId: el número de identificación asignado a la solicitud que identifica el enlace de la solicitud.

spanId: representa la unidad básica de trabajo. Una solicitud puede contener varios pasos, cada uno con su propio spanId. Una solicitud contiene un traceId y varios spanIds

exportación: tipo booleano. Indica si la información debe exportarse a agregadores como Zipkin para su recopilación y visualización.

3f575919b0df993a: El traceId es el mismo

3f575919b0df993a, 05fddf5ed5bbbf59: El spanId es diferente.

Sleuth pasa el traceId al método asíncrono y crea un nuevo spanId para representar que se trata de la misma solicitud, pero en una etapa diferente de procesamiento, ejecutada por el hilo asíncrono.

Puedes ver que Sleuth crea nuevos traceId y spanId para cada instancia de tarea.

Spring Cloud Sleuth se puede utilizar en una variedad de aplicaciones web únicas.

Podemos utilizar esta técnica para capturar fácilmente registros de una sola solicitud, incluso si la solicitud abarca varios subprocesos. Identificar cada operación y cada paso dentro de una operación mediante la identificación de traceId y spanId nos ayuda a realizar una depuración clara en entornos de subprocesos múltiples, lo que alivia la complejidad del análisis de registros.

Nota: cuando el nombre del archivo es logback-spring.xml, no es necesario configurar logging.config

Algunos términos en detective: