Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Wildfly/JBoss Java Discussion :

Load balancing avec JBoss et Apache 2


Sujet :

Wildfly/JBoss Java

  1. #1
    Membre actif
    Load balancing avec JBoss et Apache 2
    Bonjour à tous,
    petite espace pour échanger autour du tutoriel que j'ai écrit qui permet de s'initier aux joies du load balancing avec apache dans le cadre de serveurs JBoss http://npnoel-perez.developpez.com/tutoriel/jboss/loadbalancing/.
    N'hésitez pas à me faire vos retours ou à me poser toutes vos questions.
    Bonne lecture.

  2. #2
    Membre éprouvé
    Salut Noël,

    Nous utiliserons mod_jk qui est le plus répandu.
    Je ne suis pas aussi certain que toi. Il me semble que dans les installations récentes, mod_proxy a la côte. Il a beaucoup progressé fonctionnellement et il est très apprécié des admins Apache car sa config est typée Apache et parce qu'il se mixe très facilement avec d'autres modules comme le mod_rewrite. De plus, il supporte AJP ou HTTP, ce qui plait souvent aux admins réseau.

    Ce serait intéressant d'avoir une meilleure vision des déploiements respectifs...

  3. #3
    Membre actif
    Bonjour,
    je suis d'accord avec toi sur l’intérêt du mod_proxy mais si on se réfère à la base installée, il semble en retard. Cela dépend aussi des domaines et de l'utilisation. On peut aussi s'attendre à une forte montée du mod_cluster de JBoss qui a vraiment de très gros atouts mais qui n'est pas assez utilisé en production pour le moment ce qui empêche sa généralisation.

    Citation Envoyé par hasalex Voir le message
    Salut Noël,

    Je ne suis pas aussi certain que toi. Il me semble que dans les installations récentes, mod_proxy a la côte. Il a beaucoup progressé fonctionnellement et il est très apprécié des admins Apache car sa config est typée Apache et parce qu'il se mixe très facilement avec d'autres modules comme le mod_rewrite. De plus, il supporte AJP ou HTTP, ce qui plait souvent aux admins réseau.

    Ce serait intéressant d'avoir une meilleure vision des déploiements respectifs...

  4. #4
    Responsable Java

    Un très bon article.

    Le titre pourrait penser à un sujet complexe mais ta présentation rend la mise en place très simple.

    Une question. Tu parles de la mise en oeuvre sur JBoss, je suppose que c'est valable pour d'autres serveur d'application Jetty, Tomcat, ...

    Mickael
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Ingénieur de Recherche en informatique au LIAS / ISAE-ENSMA
    Page de Developpez.com : mbaron.developpez.com
    Twitter : www.twitter.com/mickaelbaron
    Blog : mickael-baron.fr
    LinkedIn : www.linkedin.com/in/mickaelbaron
    DBLP : dblp.uni-trier.de/pers/hd/b/Baron:Micka=euml=l

  5. #5
    Membre à l'essai
    salut .

    merci pour le tuto mais en essayant de le mettre en ouevre j'ai eu quelque problèmes

    j'ai cette erreur lorsque j'ai copier ceci dans le fichier httpd.conf :

    LoadModule jk_module modules/mod_jk.so

    # Where to find workers.properties
    # Update this path to match your conf directory location (put workers.properties next to httpd.conf)
    JkWorkersFile conf/workers.properties
    # Where to put jk shared memory
    # Update this path to match your local state directory or logs directory
    JkShmFile logs/mod_jk.shm
    # Where to put jk logs
    # Update this path to match your logs directory location (put mod_jk.log next to access_log)
    JkLogFile logs/mod_jk.log
    # Set the jk log level [debug/error/info]
    JkLogLevel info
    # Select the timestamp log format
    JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
    JkMount /* loadbalancer
    <IfModule worker.c>
    StartServers2
    MaxClients150
    MinSpareThreads25
    MaxSpareThreads75
    ThreadsPerChild25
    MaxRequestsPerChild0
    </IfModule>



    voila l'erreur :

    * Starting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
    (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
    no listening sockets available, shutting down
    Unable to open logs

  6. #6
    Membre à l'essai
    bon il parrait que j'avait un autre serveur web ouvert sur la machine .

    j'ai plus cette erreur mais j'ai une erreur de segmentation lorsque je lance mon serveur web .

  7. #7
    Candidat au Club
    Bonjour,

    J'ai mis en oeuvre cette architecture sans loadbalancer afin de pouvoir appeler à partir d'un serveur apache différentes applications situées sur différents serveurs JBoss.
    Et j'ai des pertes de communication décrites dans le post ci dessous :

    http://www.developpez.net/forums/d10...-jboss-apache/

    Auriez vous une idée ?

  8. #8
    Membre éclairé
    En octobre dernier je suis allé faire une présentation au ChtiJUG sur le sujet.
    Une video est disponible ici: http://vimeo.com/16270213

    Les 10 premières minutes sont consacrées à une présentation de Red Hat. Allez au delà pour passer cette partie.

  9. #9
    Membre régulier
    Bonjour,

    J'ai suivi le tutoriel que j'ai trouvé fort intéressant et bien expliqué.
    Moi qui voulais faire du loadbalancing j'ai été servi, merci

    Parcontre j'ai un peu galéré pour faire fonctionner mod_jk, en effet étant sur ubuntu il y a des spécifités à respecter comme par exemple dans le fichier /etc/hosts j'ai du remplacer :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    127.0.0.1    localhost
    127.0.1.1    ubuntu 
    ...


    Par :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
     
    127.0.0.1    localhost.localdomain localhost ubuntu
    ...


    Je le dis au cas où certains auraient le même souci.

  10. #10
    Membre du Club
    la redirection ne marche pas
    Bonjour

    merci pour votre article, je me suis servi pour mettre en place le loadbalancing, mais j'ai un souci :

    j'ai déclaré 3 worker, deux actif et 1 disabled pour prendre la main au cas ou un des deux serveur s'arrete mais ça marche pas voici la config :

    worker.list=loadbalancer,status
    # Set properties for worker1 (ajp13)
    worker.worker1.type=ajp13
    worker.worker1.host=ip.server1
    worker.worker1.port=7009
    worker.worker1.lbfactor=1
    worker.worker1.connection_pool_size=10
    worker.worker1.redirect=worker3

    # Set properties for worker2 (ajp13)
    worker.worker2.type=ajp13
    worker.worker2.host=ip.server2
    worker.worker2.port=7009
    worker.worker2.lbfactor=1
    worker.worker2.connection_pool_size=10
    worker.worker2.redirect=worker3

    # Set properties for worker3 (ajp13)
    worker.worker3.type=ajp13
    worker.worker3.host=ip.server3
    worker.worker3.port=7009
    worker.worker3.lbfactor=1
    worker.worker3.connection_pool_size=10
    worker.worker3.activation=disabled

    #fonctionnement de l'equilibrage de charge
    worker.loadbalancer.type=lb
    worker.loadbalancer.balance_workers=worker1,worker2,worker3
    worker.loadbalancer.sticky_session=True
    worker.status.type=status



    et coté jboss


    <Connector port="7009" address="${jboss.bind.address}"
    emptySessionPath="true" enableLookups="false" redirectPort="18443"
    protocol="AJP/1.3"/>

    <Engine name="jboss.web" defaultHost="localhost" jvmRoute="worker1">
    .....

    pareil pour les 3 jboss

    si j'arrete le premier serveur ou le 2 la redirection ne se fait pas sur le 3 server mais sur l'un des deux premiers !! par contre si j'arrete les deux premiers alors le 3 serveur prend bien la main !!

    est-ce que c'est la bonne config ??


    merci

  11. #11
    Membre éclairé
    Tu peux préciser le nom du worker de redirect pour worker1 et worker2 en indiquant worker3:

    worker.worker1.redirect=worker3

    "Set to the name of the preferred failover worker. If worker matching SESSION ID is in error state then the redirect worker will be used instead. It will be used even if being disabled, thus offering hot standby. "
    Note: Utilises "d" ou "D" au lieu de "disabled" qui est déprécié.

  12. #12
    Membre du Club
    c'est déja fait !

    worker.worker1.redirect=worker3
    worker.worker2.redirect=worker3

  13. #13
    Membre éclairé
    Citation Envoyé par eric95 Voir le message
    c'est déja fait !

    worker.worker1.redirect=worker3
    worker.worker2.redirect=worker3
    Ha oui!
    Sorry je reviens d'un séjour difficile

  14. #14
    Membre du Club
    re bonjour

    j'ai une autre question :

    peut-ton mixer mode_jk pour le load balancing et mod_dav pour serveur de fichier ?

    je voudrais que mon serveur apache dispatche les requetes vers des serveur jboss (load balancing) et en meme temps s'il reçoi des requetes particulieres il fait serveur de fichier et renvoi en retour un fichier html ou pdf selon la demande mais ne redirige pas la requete vers les serveur jboss !!

    est-ce possible ?

  15. #15
    Membre du Club
    oui on peut avec JkMount d'apache desolé ...

  16. #16
    Futur Membre du Club
    http://cosinusc.blogspot.com/2012/01/load-balancing-jk-apache2-jboss.html

  17. #17
    Membre régulier
    Auriez-vous un tuto ou de la doc pour utiliser mod_proxy à la place de mod_jk ? Je ne veux pas faire du load balancing dans 1 premier temps, je vais juste mettre en place un failover.

    Merci

  18. #18
    Membre du Club
    et si apache crash ?
    Bonjour,

    Merci pour ce très bon tuto, cependant une question peut se poser : que se passe t'il si notre serveur apache effectuant le load-balancing crash ? On a bien une indisponibilité de nos applications ?
    Comment peut-on y remédier ?

    Merci pour vos réponses

  19. #19
    Membre actif
    Citation Envoyé par flomomo Voir le message
    Bonjour,

    Merci pour ce très bon tuto, cependant une question peut se poser : que se passe t'il si notre serveur apache effectuant le load-balancing crash ? On a bien une indisponibilité de nos applications ?
    Comment peut-on y remédier ?

    Merci pour vos réponses
    Bonjour Flomomo
    En général si on veut se prémunir de ce cas on peux utiliser le serveur de DNS pour avoir un serveur de repli rapidement utilisable mais c'est un point que je ne maitrise pas en paramètrage, je n'ai donc pas d'exemple :S

###raw>template_hook.ano_emploi###