Problème de perte de connexion avec Mysql avec l’utilisation de HAPROXY
Lors de l’utilisation de HAPROXY vers deux Mysql en master/slave, lors de l’arrêt d’un des deux serveurs Mysql, le serveur JBoss n’arrive pas à se reconnecer à la base de données. Etudions ici la configuration, l’installation de Haproxy et de JBoss.
Versions utilisées:
Dans cette configuration, nous utilisons une réplication entre un Mysql Master et un Slave. L’idée est d’avoir un failover lors de la chute du master vers le server de backup, ici le 192.168.100.13. De plus, on à rajouter le fait qu’en cas de redémarrage du Master, HAPROXY ne le reprenne pas en compte afin d’éviter que perte de données soient effectives entre l’arrêt et le redémarrage du serveur Master. Ici il va attendre 9999999 fois avant de le reprendre. Cette technique est une stratégie de contournement efficace pour HAPROXY. C’est l’instruction backup qui sert pour indiquer quel est le serveur à prendre en cas de failure du master, ici 192.168.100.12.
listen mysql-cluster 0.0.0.0:3306
timeout connect 2m
timeout client 2m
timeout server 2m
mode tcp
option mysql-check user haproxy
server db01 192.168.100.12:3306 check inter 10s fall 3 rise 99999999
server db02 192.168.100.13:3306 backup check
Lors d’une coupure vers la base de données, il se trouve que JBoss ne se reconnecte jamais à la base de données. La version de JBoss utilisée est la version EAP 6.1. Après de nombreuses recherches infructueuses, une solution semble bien fonctionner: L’instruction validate on match.
D’après la documentation disponible sur le site:
http://www.ironjacamar.org/doc/userguide/1.1/en-US/html/ch05.html#d0e2938
Un autre problème existe. HAPROXY supprime des connexions de Jboss si celles-ci ne sont plus utilisées depuis un certain temps. Pour résoudre ce problème il est possible de régler le problème modifiant les paramètres timeout idle de la sorte:
Au passage lors de l’utilisation de JBoss avec un cluster MySql il est nécessaire de modifier la méthode de transaction, comme ceci:
TRANSACTION_REPEATABLE_READ
Vous êtes arrivé sur cette page peut-être par curiosité ou via une recherche un peu plus spécifique dans le but d'en apprendre davantage sur Sentry ? Excellente nouvelle ! C'est là tout l'objectif de cet article dans lequel nous découvrirons ce qu'est Sentry, son utilité, les fonctionnalités principales qu'il propose, comment l'installer en local sur une machine de développement puis comment l'implémenter dans divers projets. Vous êtes prêt ? C'est parti !
Découvrez la planche #14 !
Quand vous faites des appels d'offres ou des contrats de maintenance applicative, vous devez réfléchir aux délais d'intervention en cas de problème sur votre application : SLA Informatique ! Qu'est-ce qu'une SLA ? Pourquoi en inclure dans ses contrats de maintenance applicative et comment les rédiger ? Les réponses ci-dessous !