2010-06-24 4 views
3

J'ai une application web Spring avec des services singleton. Il existe également des variables singleton telles que map avec des données de session pour tous les utilisateurs authentifiés, etc. Tout fonctionne bien sur un serveur, mais comment ce système peut-il être distribué entre quelques serveurs? Le système s'exécute sous Tomcat.Clustering sur tomcat avec ressort

Merci d'avance!

Répondre

2

Terracotta a le support de Spring et s'assure qu'il n'y a qu'un seul bean singleton parmi toutes les instances du cluster Terracotta.

Tout ce que vous avez à faire est d'activer Terracotta et d'ajouter de manière déclarative les beans singleton au cluster.

Si vous vous souciez d'enregistrer un compte communautaire, vous pouvez en lire plus dans leur online documentation.

0

C'est l'une des raisons pour lesquelles singletons sont considérés comme stupides ou nuisibles. Jetez un oeil à Google Singleton Detector. C'est un outil qui détecte les singletons dans le code java byte. Consultez la FAQ pour voir quels sont les problèmes avec singleton.

Si vous souhaitez regrouper votre application, évitez l'utilisation de singletons. Considérez l'état persistant dans une base de données.

+0

La persistance de tout dans la base de données semble inefficace. Y a-t-il d'autres méthodes? –