Nous avons une application déployée sur prod dans un environnement multicluster, avec un équilibreur de charge.Avis sur le modèle d'abonné Jms publish
Dans l'application, nous conservons un cache pour améliorer les performances. Le problème est que, comme nous sommes dans un environnement multicluster, un singleton n'est pas vraiment un singleton, donc si nous effaçons le cache dans un nœud, l'autre nœud n'est pas averti pour nettoyer son propre cache.
Nous avons actuellement seulement deux nœuds mais nous pourrions en ajouter d'autres dans le futur. Donc, ma première pensée était d'implémenter une file d'attente JMS avec le modèle publish/abonné. Une fois qu'un nœud a besoin de vider son cache, il enverrait un message à la file d'attente, et tous les nœuds (même lui-même) devraient être notifiés automatiquement pour effacer leurs caches. J'ai vérifié avec activemq, mais pour autant que j'ai vu, une fois que l'éditeur envoie un message, l'abonné doit faire getMessage() pour recevoir le message. Cela impliquerait que nous devrions continuellement tirer la file d'attente pour voir s'il y a un message là-bas, et aussi je devrais m'assurer qu'une fois que tous les abonnés ont lu le message, le message est enlevé. J'écris juste pour obtenir des conseils sur la façon de mettre en œuvre une telle chose, si activemq ou toute autre implémentation jms fournit quelque chose qui correspondrait à nos besoins.
Merci
Super, merci! – fgonzalez