Seguimiento de registros de SpringBoot
Con el desarrollo de los sistemas distribuidos, el proceso de resolución de problemas del análisis de registros se ha vuelto cada vez más complejo. Hoy en día, el sistema ELK se utiliza generalmente para integrar todos los registros del sistema distribuido para su análisis. Se necesita un ID de registro global.
Log4j y Logback proporcionan MDC, que puede realizar el almacenamiento de datos según el nivel ThreadLocal, logrando así la coherencia del traceId de la impresión de registros en el mismo subproceso en el sistema
Nota: si es necesario Para lograr la coherencia del registro en varios subprocesos, traceId se puede transferir pasando parámetros
La función principal de MDC. p>
Utilice [X{traceId}] en el xml de configuración del registro para hacer referencia a la identificación del registro
Si necesita utilizar un grupo de subprocesos o un subproceso asíncrono para procesar negocios, lo mismo El subproceso en el servicio actual será ID de registro, imprime el registro, pase los parámetros usted mismo o realice la transferencia de datos entre subprocesos
Esta es la primera vez que utilizamos grupos de subprocesos o subprocesos asincrónicos para manejar negocios. strong>
Primero use un filtro para obtener el traceId del encabezado de la solicitud y guárdelo en HystrixRequestVariableDefault,
Luego, el interceptor obtiene el traceId y lo agrega al encabezado de la solicitud de RequestTemplate
Este tutorial utiliza la combinación de filtros, interceptores y HystrixRequestVariableDefault para implementar el seguimiento de registros dentro y entre sistemas.