Tengo un problema donde necesito sincronizar el procesamiento de varios subprocesos en varios servidores diferentes para un servicio de Java en Windows.Java: sincronización de subprocesos en varios servidores
En esta aplicación, tengo varios hilos de consumo retirando mensajes de la misma cola JMS. Los mensajes vienen en grupos de 3 o 4, y necesito asegurarme de que los mensajes en cada grupo se procesen completamente en serie. Necesito algún tipo de mecanismo de sincronización para asegurarme de que thread1 desconecta un mensaje, luego thread2 saca el siguiente mensaje de ese grupo, thread2 espera que thread1 termine de procesar antes de comenzar a procesar su mensaje.
¿Alguna sugerencia sobre mecanismos distribuidos de sincronización para hilos? Cualquier tipo de solución sería buena (soluciones JMS, almacenamiento en caché distribuido, etc.)
Nota: el proveedor de JMS que estamos utilizando es ActiveMQ.
He mirado en los que brevemente. ¿Sabes qué sucede con los grupos de mensajes si continuamente creas grupos nuevos? ¿El hash interno crecerá continuamente? ¿Hay alguna manera de "eliminar" o "caducar" un grupo, para que el grupo no se quede sentado en la memoria para siempre? Thx por la respuesta, por cierto. –
Puede cerrar grupos de mensajes (se detalla en la página que he vinculado). Aunque no estoy seguro acerca de la sobrecarga de crear nuevos grupos, probablemente sea para comprobar cómo se hace directamente desde la fuente. – andri