registro distribuido: JMS y log4j?

Estuve buscando una solución a este problema: necesito entradas de registro de aplicaciones que se ejecutan en varias máquinas para enviarlas y agregarlas en un servidor remoto. Requisitos:

  1. el inicio de sesión en la aplicación debe ser asíncrono (no puedo esperar a que la entrada de registro atraviese la red)
  2. el inicio de sesión en la aplicación debe estar en cola; si la red falla, las entradas de registro deben ponerse en cola localmente y enviarse al servidor centralizado cuando la red vuelva a estar disponible

Estoy buscando usar log4j y un JMSAppender. Suponiendo que sea una solución adecuada, ¿hay algún ejemplo disponible? ¿Qué proceso se ejecutaría en el servidor centralizado para recibir entradas de registro en este escenario?

Gracias.

preguntado el 12 de junio de 12 a las 22:06

1 Respuestas

Una configuración simple en la que llegué a pensar es usar Apache Active MQ

Es un intermediario de mensajería de código abierto (compatible con JMS) que puede agrupar colas entre varias máquinas físicas y la instalación de ActiveMQ es bastante liviana. Simplemente instale un ActiveMQ en cada una de sus máquinas de aplicaciones. Luego, en el servidor de registro (Servidor físico C en la imagen) tendría otro ActiveMQ. Su aplicación usaría un agregador JMS (leer más aquí) y en realidad podría usar el incluido camello apache para leer de la cola y escribir un archivo de registro o una base de datos sin necesidad de escribir una aplicación para esa tarea.

Podría ser tan simple como agregar algo como lo siguiente a camel.xml en la instalación de activemq /conf e importar camel.xml en la configuración de activemq.xml.

<route>
 <from uri="activemq:queue:LogQueue"/>
 <to uri="file:target/folder/?fileName=logfile.log&fileExist=Append"/>
</route>

Ejemplo de registro distribuido

Podría usar una gran cantidad de otros marcos, servidores JMS y tecnologías, pero creo que este es un enfoque bastante fácil de lograr con un costo muy bajo y alta estabilidad.

Respondido el 15 de junio de 12 a las 21:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.