2 Replies Latest reply on Apr 24, 2013 7:03 PM by mauriciomag

    load balance e cluster no JBoss 7 com Apache e mod_cluster

    adrianoschmidt

      Pessoal..

       

      Montei um ambiente aqui com um apache na frente e 3 jboss as 7.1.3 (um domain e dois host) em cluster..

       

      Minha dúvida é quanto ao funcionamento do loadbalance e do cluster..

       

      Ao acessar uma URL do meu apache:

       

      http://ipDoApache/minhaaplicacao

       

      sou redirecionado para o servidorHost01, mas se eu parar o servidorHost01, serei redirecionado para o servidorHost02...

       

      até aí beleza... mas como que o apache escolhe pra qual servidor mandar se os dois estiverem no ar?

       

      ele faz metade pra um, metade pro outro?

       

      e o cluster seria apenas para replicação da sessão?

       

      Não ficou muito claro isso pra mim..

       

      Att,

      Adriano Schmidt

      www.localhost8080.com.br

        • 1. Re: load balance e cluster no JBoss 7 com Apache e mod_cluster
          mauriciomag

          E ai Adriano blz?

           

          até aí beleza... mas como que o apache escolhe pra qual servidor mandar se os dois estiverem no ar?

          ele faz metade pra um, metade pro outro?

           

           

          A configuração embutida no mod_cluster utiliza uma carga de fator fixo, algo como:

           

          <subsystem xmlns="urn:jboss:domain:modcluster:1.1">

                      <mod-cluster-config>

                           <simple-load-provider load="1"/>

                    </mod-cluster-config>

          </subsystem>

           

          Como pode ser visto no arquivo jboss-as-mod-cluster_1_1.xsd:

           

            <!-- <simple-load-provider load="1"/> -->

            <xs:complexType name="simple-load-providerType">

              <xs:attribute name="factor"  type="xs:int" use="optional" default="1" />

            </xs:complexType>

           

          Mas é bem interessante que voce personalize esse balanceamento de carga utilzando atributos dinâmicos (dynamic-load-provider), que são um conjunto de métricas... seria algo como:

           

          <subsystem xmlns="urn:jboss:domain:modcluster:1.1">

                    <mod-cluster-config advertise-socket="modcluster" connector="ajp">

                         <dynamic-load-provider history="10" decay="2">

                               <load-metric type="cpu" weight="2" capacity="1"/>

                               <load-metric type="sessions" weight="1" capacity="512"/>

                         </dynamic-load-provider>

                      </mod-cluster-config>

          </subsystem>

           

          Novamente utilizei um dynamic-load-provider que já está como exemplo no xsd:

           

            <!-- Something like.

                 <dynamic-load-provider history="10" decay="2">

                     <load-metric type="cpu" weight="2" capacity="1"/>

                     <load-metric type="sessions" weight="1" capacity="512"/>

                      ...

                 </dynamic-load-provider>

              -->

           

          Cada métrica tem um objetivo... cabe a voce estudá-las e escolher qual a melhor para o seu ambiente. Por exemplo no JBoss EAP 6.0.1 por padrão deixaram a métrica busyness configurada:

           

          <subsystem xmlns="urn:jboss:domain:modcluster:1.1">

                    <mod-cluster-config advertise-socket="modcluster" connector="ajp">

                         <dynamic-load-provider>

                                   <load-metric type="busyness"/>

                          </dynamic-load-provider>

                    </mod-cluster-config>

          </subsystem>

           

          A métrica busyness se baseia no percetual de utilização do Thread Pool para distribuir as requisições entre os nós.

           

          Novamente aconselho a leitura da documentação do Mod Cluster http://docs.jboss.org/mod_cluster/1.2.0/html/.

           

           

          Espero que tenha respondido a sua questão.

           

          Grande Abraço.

          -- Mauricio Magnani

          • 2. Re: load balance e cluster no JBoss 7 com Apache e mod_cluster
            mauriciomag

            e o cluster seria apenas para replicação da sessão?

             

            Basicamente o cluster é utilizada para replicar o estado dos objetos.

             

            Quando desejamos um ambiente com alta disponibilidade não necessáriamente ele deverá ser clusterizado.

             

            HA não é Cluster e vice e versa

             

            Abs

            1 of 1 people found this helpful