Ho un'applicazione Web Java, in esecuzione in un cluster di server applicazioni Tomcat e un database SQL / JDBC condiviso. I dati del database sono memorizzati nella memoria in ogni istanza dell'app Web.
La mia applicazione web deve aggiornare periodicamente il database con i dati del bollettino meteorologico da un'origine esterna alla mia applicazione Web (ad esempio un thread in background raccoglie e scrive periodicamente un intero gruppo di righe di dati in una tabella nel database utilizzando SQL). Solo una istanza della mia applicazione Web nel cluster dovrebbe eseguire questa operazione e quindi rendere le altre istanze consapevoli del fatto che i dati nel database sono stati modificati in modo che possano svuotare le loro cache e iniziare a utilizzare i dati aggiornati dal database. La propagazione dell'aggiornamento al database non deve essere in tempo reale.
Qual è la migliore pratica per raggiungere questo obiettivo? Come negoziare, quale nodo sarà quello per eseguire gli aggiornamenti? Quali tecnologie JEE posso usare? Voglio evitare semplicemente il polling per le modifiche nel database.