Facebook EmaiInACirclel
Développement front-end, back-end

Les solutions de caching en JAVA

Jean-Paul Lacombe
Jean-Paul Lacombe
Customer Success Manager

La majorité des applications accèdent à une base de données, et pour la plupart d’entre elles la performance de cette base est un point critique. Pour les systèmes fortement sollicités un système de cache peut améliorer significativement les performances et rendre possible la scalabilité horizontale (multiplication du nombre de serveurs pour améliorer la performance).

Il existe différents niveaux de cache :
• CPU
• Disque
SQL
Applicatif qui est le sujet de cet article

Prenons l’exemple d’une application web typique. Pour faciliter les développements elle est construite en utilisant un modèle standard de page qui contient des éléments communs à toutes les autres pages (profil utilisateur, informations de session, menus, dernières opérations, favoris etc…). Ce modèle est chargé à l’ouverture de chaque page, nécessitant l’exécution de nombreuses requêtes SQL, souvent plus que la page de contenu en elle-même (sur un de mes projets le modèle exécute 11 requêtes SQL par exemple). Il n’est pas possible de rendre ce modèle de page statique durant la session en cours, des modifications pouvant être faites en parallèle par d’autres utilisateurs. Le modèle a également des éléments statiques qui peuvent être mis en cache.

Le cache applicatif résout ce problème en stockant les données dans un cache mémoire, évitant ainsi de solliciter la base de données ou le disque à chaque chargement. Le cache est maintenu à jour et rafraîchit par son conteneur.

Il existe differentes solutions de cache JAVA, avec different niveaux de fonctionnalités et de prix. Si vous préférez une solution open source, Ehcache est la meilleure option. C’est comme Spring pour l’IoC, Hibernate pour la persistence et Maven pour les builds, et il est parfaitement intégré avec ces outils. Ehcache est utilisé comme système de cache pour Hibernate, les DAO, la gestion de la sécurité, les éléments d’une page web, la communication SOAP et RESTful, ainsi que la mise en place de caches distribués.

Ses avantages :
• Configuration transparente
• Stockage en mémoire et sur disque
• Packagé avec des applications ou comme un service autonome
• Facilite le Scaling Horizontal
• Rafraîchissement manuel ou automatique
• Possibilité d’interroger manuellement le cache
• Utilisé notamment pour améliorer les performances de wikimedia
• …

Ehcache est utilisé avec succès dans de nombreuses applications, pourquoi ne pas l’essayer ?

Merci à Andrei COTOROBAI pour son travail sur cet article.


Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.