En el desarrollo de microservicios, el registro es una tarea muy básica: registrar la información de registro de solicitudes de la interfaz, lo que nos ayuda a resolver problemas y a reproducir problemas. El contenido del registro incluye el enlace, método de solicitud, agente de usuario, cabecera, IP actual de la máquina de nodos de microservicio, nombre de la máquina de nodos, entorno en ejecución, IP del solicitante, consumo de tiempo y otra información.
Usando el bloqueador de filtros del framework Spring Cloud, puedes interceptar los registros de información de solicitudes de todas las interfaces y persistir los registros de solicitud en MongoDB.
Estructura del registro de interfaz
Primero, crea un nuevo objeto y define la estructura del registro, el código es el siguiente:
Filtro logarítmico
Crea un nuevo filtro RequestLoggerFilter, hereda la interfaz Filter e implementa el método doFilter; este filtro tiene la prioridad más alta y la prioridad del filtro puede establecerse mediante la anotación @Order.Filtra los commits de registro POST/PUT (excluye los registros de commit de archivos multipart/form-data), el código es el siguiente:
Los registros persisten en MongoDB
Para no afectar el uso normal de la interfaz, el registro de la interfaz se colocará en la cola segura por hilos, el programa abrirá un hilo, el hilo consumirá los datos de la cola, almacenará los datos en MongoDB y usará Maven para introducir dependencias.
Para más información sobre mongodb, consulta org.springframework.boot.autoconfigure.mongo.MongoProperties
application.yml La configuración es la siguiente:
Formato URI: nombre de usuario: root, contraseña: aaaaaaa, dirección de base de datos: 127.0.0.1, número de puerto: 27017, nombre de base de datos: test Por ejemplo: mongodb://root:aaaaaa@127.0.0.1:27017/test
SiEl nombre de usuario o la contraseña contiene un símbolo especial, así que utiliza la codificación de URL¡de lo contrario se reportará un error!
Llama a MongoTemplate para que los datos persistan en la base de datos con el siguiente código:
(Fin)
|