Question architecture / session
Bonjour à tous,
Je développe une application Web (déployée actuellement sous Tomcat).
-> Mon besoin est le suivant :
Les utilisateurs une fois connectés peuvent envoyer des messages entre eux. Le but est que dés qu'un utilisateur a un message non lu, une image "boite mail" apparaît, indiquant qu'au moins 1 message non lu est présent.
-> Le problème :
Je dois donc effectuer à chaque chargement de page, une requête vers la base de données pour savoir si au moins 1 mail non lu existe pour l'utilisateur. C'est assez lourd...
-> Une solution possible :
Une classe utilitaire stocke toutes les sessions utilisateur connectés dans une HashMap(couple Utilisateur / Session).
Quand un utilisateur envoie un message, l'application modifie directement la session de l'utilisateur cible.
Cela a toutefois plusieurs conséquences :
- Si un jour la charge monte trop et que je suis obligé de créer un cluster, le système ne fonctionne plus du tout...
- Si tomcat swap les sessions sur disque, les objets session mémorisés dans ma HashMap ne correspondront plus à la session utilisée par tomcat
Bref quelqu'un a t'il une solution à me proposer pour ne pas avoir à faire de requêtes répétitives pour vérifier les nouveaux messages ?
Merci d'avances