Archives par étiquette : session

Gestion de session avec un cluster redis – suite

Maintenant que nous avons une application à tester, nous pouvons utiliser gatling pour simuler de la charge et voir comment se comporte l’application en cas de chute d’un noeud master.

Le script se contente de se logguer, et de rafraîchir 3 fois la page index. Il va injecter 20 users par seconde pendant 5 minutes:

 

J’ai arrêté un noeud master avec la commande supervisor :

Ce qui nous donne:

gatling-session

On peut voir qu’il y a des erreurs pendant près de 10s, le temps que le slave prenne le pas sur le master.

Il faudrait peut être modifier le session-manager pour tenir de ce problème. A suivre…

load balancing haproxy sous docker

Après avoir créé une première image contenant une application basique sous tomcat, je vais tester une montée en charge. Pour cela, nous allons lancer 2 containers tomcat et mettre en place un HA proxy (il s’agit d’un load balancer logiciel qui va répartir la charge entre les 2 containers tomcat.

Je vais utiliser l’image suivante : https://index.docker.io/u/dockerfile/haproxy.

Il y a juste à surcharger la configuration pour l’adapter à nos besoins:

j’ai repris le fichier de l’image et j’ai ajouté la partie en bas. On va donc faire du round robin  entre nos 2 serveurs tomcat qui sont ensuite définis. J’ai gardé la partie stats pour vérifier que tout se passe bien.

En démarrant un container, on obtient le résultat suivant:

 

Le serveur ne trouve aucun serveur « backend ». C’est ce que l’on constate aussi en regardant les stats:

stats1

En démarrant un container tomcat, on peut voir que les choses s’améliorent:

 

stats2

On a maintenant un premier backend. Et effectivement, en allant sur le site, j’obtiens bien la page voulue

hello1

Je lance maintenant le deuxième:

stats3

Nous avons maintenant une infrastructure avec 2 serveur tomcat et un load balancer devant.

En lancant une commande de type :

On voit bien l’alternance des serveurs dans les logs et dans les stats.

stats4

Les sources de l’exemple sont disponible ici: git.