Exploitation

Clustering


Cette section adresse la situation où un cluster Plume doit être déployé si l’affinité de session n’est pas préservée. Dans ce cas plusieurs aspects doivent être pris en compte.

Pour centraliser les différentes données stockées au niveau d’une instance du cluster, il est nécessaire d’installer la base de données clé-valeur Redis et de configurer son accès depuis Plume. Pour cela, il est nécessaire de définir les propriétés suivantes :

spring.redis.host=<redis host>
spring.redis.port=6379


Pour plus d’information, consulter la documentation Spring Data Redis

Sessions

Plume s’appuie sur la session utilisateur pour sauvegarder les emails en cours de rédaction. Il est donc nécessaire de stocker les sessions dans Redis. Pour utiliser Redis comme backend de stockage des sessions HTTP, ajouter la propriété :

spring.session.store-type=redis

Caches

Différentes données sont stockées en cache pour des questions de performances. Ces caches doivent donc être répliqués sur chacune des instances du cluster. Pour cela, ajouter la propriété suivante :

spring.cache.type=redis

Fichiers temporaires

Le dernier aspect à prendre en compte est la gestion des fichiers temporaires utilisés pour stocker les pièces jointes d’un email. Celles-ci sont stockées, de manière temporaire, dans un répertoire (par défaut: ${java.io.tmpdir}/plume/attachments ). Ce répertoire doit être partagé entre les différentes instances du cluster. Pour cela, il est possible de modifier l’emplacement du répertoire utilisé avec la propriété plume.tmp.dir.

Logs

La gestion des logs est basée sur Spring et son intégration de Logback. Pour configurer les logs générés par l’application, il suffit donc d’ajouter les propriétés voulues dans le fichier de propriété.

Le niveau de log défini par défaut est INFO.

Quelques exemples de configuration :

  • Pour modifier le niveau de logs de l’application :

    logging.level.root=trace
  • Pour modifier le niveau de logs de l’application :

    logging.level.com.arondor=ERROR
  • Pour définir le fichier de log utilisé :

    logging.file=plume.log  


Pour plus d’information, consulter la documentation Spring Boot Logging

Session

La durée de la session peut être configurée avec les paramètres suivants :

server.servlet.session.timeout=30
server.servlet.session.cookie.max-age=30