Sessions Web Java avec NCache

Sessions sont un moyen de stocker des données pour des utilisateurs distincts. Les objets de session Java, créés sur le serveur d'application, appelés conteneurs de servlet qui hébergent l'application Web, à l'intérieur d'un servlet Java ou d'une page de serveur Java (JSP) incluent Apache Tomcat, WildFly, Logique Web ainsi que Sphère Web.

Par exemple, le serveur Web Tomcat fournit une gestion de session via la réplication de session sur des clusters de serveurs Web Tomcat. La réplication de session peut entraîner une surcharge de données et de mémoire, devenir lente et manquer de performances et d'évolutivité.

Par conséquent, NCache fournit une meilleure option où les utilisateurs peuvent stocker leurs sessions Java dans leur application sans aucun problème dans une ferme Web à charge équilibrée.

Sessions Web Java

Différents conteneurs de servlet associés à NCache

NCache offre à ses utilisateurs la possibilité d'utiliser différents types de conteneurs de servlets qui peuvent facilement héberger leur application Web, comme indiqué ci-dessous.

  1. Apache Tomcat : Il s'agit d'une implémentation open source des pages Java Servlet et Java Server et fournit également un environnement de serveur Web HTTP "pur Java" dans lequel le code Java peut s'exécuter. Il fournit une gestion de session via des sessions permanentes.
  2. WildFly : Il s'agit d'un serveur d'applications écrit en Java qui déploie et gère des applications Java dans divers environnements.
  3. Logique Web : Il s'agit d'une application compatible Java Enterprise Edition (EE) qui déploie, exécute et distribue les applications basées sur Java.
  4. Sphère Web : C'est le serveur d'applications le plus avancé pour créer et exécuter des applications Java.

Configuration du module de session Java pour NCache

Pour configurer les sessions Java, il faut modifier le fichier "session.xml" situé à %NC_Home%/config dans le NCache dossier. Voici le code qui le fait pour NCache. Pour plus de détails concernant l'ajout de bibliothèques, la définition de filtres et le déploiement de l'application à l'aide de conteneurs de servlets, consultez Ajouter des bibliothèques et définir un filtre de l'aide.

<?xml version="1.0" encoding="UTF-8"?>  
   <!--for single regional session provider-->
<servlet-session-config>
    <cache id="myPartitionedCache"/>
    <log log-props="log4j.properties"/>
    <locking enable-session-locking="true" retries-count="2" retry-interval="500ms" lock-timeout="36000ms" empty-session-when-locked="false"/>
</servlet-session-config>

Avantages du module de session Java pour NCache

NCache fournit à l'utilisateur une option "sans changement de code" pour que les applications Java conservent les sessions dans NCache cache distribué. Si votre application s'exécute dans une ferme de serveurs Web à charge équilibrée et que vous avez besoin d'un stockage fiable et évolutif pour la persistance de votre session, NCache donne les avantages suivants :

  1. Meilleure performance: NCache fournit le temps de réponse le plus rapide, d'où des performances améliorées.
  2. La haute disponibilité: NCache fournit des clusters de cache distribués puissants sans point de défaillance unique qui sont hautement disponible ce qui signifie que vous pouvez ajouter ou supprimer du cache sans arrêter votre application.
  3. Fiabilité extrême : NCache permet à l'utilisateur de répliquer des sessions de servlet Java sur plusieurs serveurs en fonction de leur topologie spécifiée sans compromettre la fiabilité et les performances. C'est pourquoi l'utilisateur ne perdra aucune donnée de session même si le serveur de cache tombe en panne pour une raison quelconque.
  4. Réplication de session brillante via des topologies : NCache fournit diverses topologies de mise en cache à travers lesquelles vous conservez vos sessions en fonction de vos besoins. Par exemple, on peut utiliser topologie partitionnée-répliquée pour plus de fiabilité et d'évolutivité.
  5. Évolutivité linéaire : NCache, une distribution en mémoire linéairement évolutif grid, a la capacité de gérer des charges élevées, c'est pourquoi les applications de session peuvent atteindre autant d'évolutivité que possible.

Prise en charge de plusieurs régions dans les sessions Web Java

Pour gérer les sessions de servlet Java sur plusieurs fermes Web, qui sont géographiquement situées séparément, NCache fournit la persistance de session multisite des manières suivantes :

  1. Réplication WAN des sessions Web Java : NCache permet à un utilisateur de répliquer toutes les sessions Java sur le WAN vers une autre région (centre de données), ce qui se fait via le Topologie de pont caractéristique de NCache. Cela garantit que vos sessions Java ne sont jamais perdues même si une région tombe en panne.
  2. Sessions Web Java multi-sites : Si un utilisateur ne souhaite pas répliquer les sessions sur le WAN principalement en raison d'une forte consommation de bande passante et d'éventuels problèmes de performances, il peut choisir d'utiliser le concept de Prise en charge des sessions Java multi-sites, une caractéristique de NCache. Dans cette approche, chaque région peut configurer ses propres caches et chaque cache aura son propre ensemble de clients (servlet Java). La session ne sera pas répliquée sur tous les sites, mais sera conservée à son emplacement de création.

Grâce à cela, nous pouvons avoir deux ou plusieurs régions distinctes actives et un utilisateur peut conserver la majeure partie du trafic vers sa propre région. De même, si l'utilisateur supprime une région pour une raison quelconque, cela ne posera aucun problème car cette région sera accessible par d'autres régions.

Fonctionnalités avancées dans NCache Sessions Web Java

Sessions Web Java pour NCache implémente toutes les fonctionnalités standard fournies par Java Web Sessions. En outre, il implémente des fonctionnalités avancées pour gérer d'autres situations importantes.

  1. Expiration de la session : NCache gère l'expiration de la session et supprime les sessions du cache pendant un délai d'expiration de session spécifié. De même, nous pouvons spécifier la valeur du délai d'expiration de la session via des conteneurs de servlet et NCache utilisera cet intervalle en interne pour faire expirer les sessions du cache.
  2. Gestion des demandes de sessions multiples et intégrité des données : Pour éviter la situation où les requêtes parallèles peuvent entraîner la mutation des sessions, NCache fournit un mécanisme de verrouillage afin que deux requêtes parallèles ne puissent pas modifier la même session. Vous pouvez le spécifier dans le fichier "session.xml" de la manière suivante :
    <servlet-session-config>
        <locking enable-session-locking="true" retries-count="2" retry-interval="500ms" lock-timeout="36000ms" empty-session-when-locked="false"/>
    </servlet-session-config>
  3. Gestion de la sérialisation des données de session : Après avoir placé vos objets Java dans des sessions de servlet Java et les avoir stockés hors processus, la totalité de la session de servlet Java doit être sérialisée. NCache fournit une sérialisation plus rapide par rapport à la sérialisation Java standard, appelée Sérialisation compacte. Avec cela, la vitesse de votre application Java augmente considérablement.

Que faire ensuite?

© Copyright Alachisoft 2002 - . Tous droits réservés. NCache est une marque déposée de Diyatech Corp.